Skip to content

Commit 3db1e55

Browse files
committed
more tests for external libs and pkg/errors
1 parent 3508b37 commit 3db1e55

5 files changed

Lines changed: 61 additions & 6 deletions

File tree

tests/external.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package tests
2+
3+
import (
4+
"errors"
5+
"fmt"
6+
7+
pkg_errors "github.com/pkg/errors"
8+
)
9+
10+
var (
11+
errExternalStdlib = errors.New("stdlib external error")
12+
errExternalPkgerr = pkg_errors.New("github.com/pkg/errors external error")
13+
)
14+
15+
func externalError() error {
16+
return fmt.Errorf("external error wrapped with errorf: %w", errExternalStdlib)
17+
}
18+
19+
func externalWrappedError() error {
20+
return pkg_errors.Wrap(errExternalPkgerr, "external error wrapped with pkg/errors")
21+
}

tests/format_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,34 @@ failed to call function
102102
\s+.+fault/tests/test_callers.go:11
103103
`, fmt.Sprintf("%+v", err))
104104
}
105+
106+
func TestFormatStdlibErrorfWrappedExternallyWrappedError(t *testing.T) {
107+
a := assert.New(t)
108+
109+
err := errorCaller(7)
110+
111+
a.Equal("failed to call function: errorf wrapped external: external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%s", err.Error()))
112+
a.Equal("failed to call function: errorf wrapped external: external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%s", err))
113+
a.Equal("failed to call function: errorf wrapped external: external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%v", err))
114+
a.Regexp(`errorf wrapped external: external error wrapped with pkg/errors: github.com/pkg/errors external error
115+
\s+.+fault/tests/test_callers.go:29
116+
failed to call function
117+
\s+.+fault/tests/test_callers.go:20
118+
\s+.+fault/tests/test_callers.go:11
119+
`, fmt.Sprintf("%+v", err))
120+
}
121+
122+
func TestFormatStdlibErrorfWrappedExternallyWrappedErrorBLank(t *testing.T) {
123+
a := assert.New(t)
124+
125+
err := errorProducerFromRootCause(8)
126+
127+
a.Equal("external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%s", err.Error()))
128+
a.Equal("external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%s", err))
129+
a.Equal("external error wrapped with pkg/errors: github.com/pkg/errors external error", fmt.Sprintf("%v", err))
130+
131+
a.Regexp(
132+
`external error wrapped with pkg/errors: github.com/pkg/errors external error
133+
\s+.+fault/tests/test_callers.go:29
134+
`, fmt.Sprintf("%+v", err))
135+
}

tests/go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ go 1.18
44

55
require (
66
github.com/Southclaws/fault v0.4.1
7+
github.com/pkg/errors v0.9.1
78
github.com/stretchr/testify v1.8.1
89
)
910

tests/go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
77
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
88
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
99
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
10+
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
11+
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
1012
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1113
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
1214
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=

tests/root.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ func rootCause(kind int) error {
3131
} else if kind == 6 {
3232
err := externalError()
3333
return fmt.Errorf("errorf wrapped external: %w", err)
34+
} else if kind == 7 {
35+
err := externalWrappedError()
36+
return fmt.Errorf("errorf wrapped external: %w", err)
37+
} else if kind == 8 {
38+
err := externalWrappedError()
39+
return err
3440
}
3541
return nil
3642
}
37-
38-
var errExternalStdlib = errors.New("stdlib external error")
39-
40-
func externalError() error {
41-
return fmt.Errorf("external error wrapped with errorf: %w", errExternalStdlib)
42-
}

0 commit comments

Comments
 (0)