From f414dc8bf2af297fdfb9884f20b58740cb723d77 Mon Sep 17 00:00:00 2001 From: Brian Goff Date: Tue, 4 Jun 2019 15:06:41 -0700 Subject: [PATCH] Fix bad recursion in errdefs check --- errdefs/invalid.go | 2 +- errdefs/invalid_test.go | 6 ++++-- errdefs/notfound.go | 2 +- errdefs/notfound_test.go | 6 ++++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/errdefs/invalid.go b/errdefs/invalid.go index d2ffa0460..4816557b0 100644 --- a/errdefs/invalid.go +++ b/errdefs/invalid.go @@ -58,7 +58,7 @@ func IsInvalidInput(err error) bool { } if e, ok := err.(causal); ok { - return IsInvalidInput(e) + return IsInvalidInput(e.Cause()) } return false diff --git a/errdefs/invalid_test.go b/errdefs/invalid_test.go index 1a3002b45..e9954f227 100644 --- a/errdefs/invalid_test.go +++ b/errdefs/invalid_test.go @@ -1,10 +1,10 @@ package errdefs import ( - "errors" "fmt" "testing" + "github.com/pkg/errors" "gotest.tools/assert" "gotest.tools/assert/cmp" ) @@ -76,5 +76,7 @@ func TestIsInvalidInput(t *testing.T) { func TestInvalidInputCause(t *testing.T) { err := errors.New("test") - assert.Equal(t, (&invalidInputError{err}).Cause(), err) + e := &invalidInputError{err} + assert.Check(t, cmp.Equal(e.Cause(), err)) + assert.Check(t, IsInvalidInput(errors.Wrap(e, "some details"))) } diff --git a/errdefs/notfound.go b/errdefs/notfound.go index c55274dc9..cdc60ca25 100644 --- a/errdefs/notfound.go +++ b/errdefs/notfound.go @@ -58,7 +58,7 @@ func IsNotFound(err error) bool { } if e, ok := err.(causal); ok { - return IsNotFound(e) + return IsNotFound(e.Cause()) } return false diff --git a/errdefs/notfound_test.go b/errdefs/notfound_test.go index 52a67c458..2690de84a 100644 --- a/errdefs/notfound_test.go +++ b/errdefs/notfound_test.go @@ -1,10 +1,10 @@ package errdefs import ( - "errors" "fmt" "testing" + "github.com/pkg/errors" "gotest.tools/assert" "gotest.tools/assert/cmp" ) @@ -76,5 +76,7 @@ func TestIsNotFound(t *testing.T) { func TestNotFoundCause(t *testing.T) { err := errors.New("test") - assert.Equal(t, (¬FoundError{err}).Cause(), err) + e := ¬FoundError{err} + assert.Check(t, cmp.Equal(e.Cause(), err)) + assert.Check(t, IsNotFound(errors.Wrap(e, "some details"))) }