Files
wazero/sys/sys_test.go
Anuraag Agrawal bc6df39785 Implements errors.Is for sys.ExitError (#545)
Signed-off-by: Anuraag Agrawal <anuraaga@gmail.com>
2022-05-12 13:06:48 +08:00

61 lines
1.0 KiB
Go

package sys
import (
"errors"
"testing"
"github.com/tetratelabs/wazero/internal/testing/require"
)
type notExitError struct {
moduleName string
exitCode uint32
}
func (e *notExitError) Error() string {
return "not exit error"
}
func TestIs(t *testing.T) {
err := NewExitError("some module", 2)
for _, tc := range []struct {
name string
target error
matches bool
}{
{
name: "same object",
target: err,
matches: true,
},
{
name: "same content",
target: NewExitError("some module", 2),
matches: true,
},
{
name: "different module name",
target: NewExitError("not some module", 2),
matches: false,
},
{
name: "different exit code",
target: NewExitError("some module", 0),
matches: false,
},
{
name: "different type",
target: &notExitError{
moduleName: "some module",
exitCode: 2,
},
matches: false,
},
} {
t.Run(tc.name, func(t *testing.T) {
matches := errors.Is(err, tc.target)
require.Equal(t, tc.matches, matches)
})
}
}