Skip to content

Commit

Permalink
feat(errorsx): introduce NewTopLevelGenericErrWrapper (ooni#511)
Browse files Browse the repository at this point in the history
Part of ooni/probe#1733 and diff has been
extracted from ooni#506.
  • Loading branch information
bassosimone committed Sep 27, 2021
1 parent 8679260 commit 88bcdb2
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
6 changes: 6 additions & 0 deletions internal/netxlite/errorsx/errwrapper.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,9 @@ func NewErrWrapper(c Classifier, op string, err error) *ErrWrapper {
WrappedErr: err,
}
}

// NewTopLevelGenericErrWrapper wraps an error occurring at top
// level using the most generic available classifier.
func NewTopLevelGenericErrWrapper(err error) *ErrWrapper {
return NewErrWrapper(ClassifyGenericError, TopLevelOperation, err)
}
16 changes: 16 additions & 0 deletions internal/netxlite/errorsx/errwrapper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,3 +102,19 @@ func TestNewErrWrapper(t *testing.T) {
}
})
}

func TestNewTopLevelGenericErrWrapper(t *testing.T) {
out := NewTopLevelGenericErrWrapper(io.EOF)
if out.Failure != FailureEOFError {
t.Fatal("invalid failure")
}
if out.Operation != TopLevelOperation {
t.Fatal("invalid operation")
}
if !errors.Is(out, io.EOF) {
t.Fatal("invalid underlying error using errors.Is")
}
if !errors.Is(out.WrappedErr, io.EOF) {
t.Fatal("invalid WrappedErr")
}
}

0 comments on commit 88bcdb2

Please sign in to comment.