aboutsummaryrefslogtreecommitdiff
path: root/pkg/errorhandling/errorhandling_test.go
diff options
context:
space:
mode:
authoropenshift-ci[bot] <75433959+openshift-ci[bot]@users.noreply.github.com>2022-07-05 07:23:22 +0000
committerGitHub <noreply@github.com>2022-07-05 07:23:22 +0000
commit773eead54e2e0877e92d5871625a6cc32c582d30 (patch)
tree9463bca52c2c0a9db27c9dd5052fa78c0b27a22a /pkg/errorhandling/errorhandling_test.go
parent3e7e66edad1269420cb45bcabbd93ac4d0e1b585 (diff)
parent597de7a083c329bdaed7fc469555a4142f71bcb8 (diff)
downloadpodman-773eead54e2e0877e92d5871625a6cc32c582d30.tar.gz
podman-773eead54e2e0877e92d5871625a6cc32c582d30.tar.bz2
podman-773eead54e2e0877e92d5871625a6cc32c582d30.zip
Merge pull request #14789 from saschagrunert/libpod-errors
libpod/runtime: switch to golang native error wrapping
Diffstat (limited to 'pkg/errorhandling/errorhandling_test.go')
-rw-r--r--pkg/errorhandling/errorhandling_test.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/pkg/errorhandling/errorhandling_test.go b/pkg/errorhandling/errorhandling_test.go
new file mode 100644
index 000000000..ec720c5e7
--- /dev/null
+++ b/pkg/errorhandling/errorhandling_test.go
@@ -0,0 +1,53 @@
+package errorhandling
+
+import (
+ "errors"
+ "fmt"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestCause(t *testing.T) {
+ t.Parallel()
+
+ for _, tc := range []struct {
+ name string
+ err func() error
+ expectedErr error
+ }{
+ {
+ name: "nil error",
+ err: func() error { return nil },
+ expectedErr: nil,
+ },
+ {
+ name: "equal errors",
+ err: func() error { return errors.New("foo") },
+ expectedErr: errors.New("foo"),
+ },
+ {
+ name: "wrapped error",
+ err: func() error { return fmt.Errorf("baz: %w", fmt.Errorf("bar: %w", errors.New("foo"))) },
+ expectedErr: errors.New("foo"),
+ },
+ {
+ name: "max depth reached",
+ err: func() error {
+ err := errors.New("error")
+ for i := 0; i <= 101; i++ {
+ err = fmt.Errorf("%d: %w", i, err)
+ }
+ return err
+ },
+ expectedErr: fmt.Errorf("0: %w", errors.New("error")),
+ },
+ } {
+ tc := tc
+ t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
+ err := Cause(tc.err())
+ assert.Equal(t, tc.expectedErr, err)
+ })
+ }
+}