diff --git a/pkg/testutil/require.go b/pkg/testutil/require.go index 6059d3b996..916664808c 100644 --- a/pkg/testutil/require.go +++ b/pkg/testutil/require.go @@ -15,14 +15,16 @@ func RequireEqualEmptyNil(t *testing.T, expected, actual interface{}, msgAndArgs expectedVal := reflect.ValueOf(expected) actualVal := reflect.ValueOf(actual) - if hasLength(expectedVal) && hasLength(actualVal) && expectedVal.Len() == 0 && actualVal.Len() == 0 { + if expectedVal.Kind() == actualVal.Kind() && + hasLength(expectedVal.Kind()) && + expectedVal.Len() == 0 && actualVal.Len() == 0 { return } require.Equal(t, expected, actual, msgAndArgs...) } -func hasLength(v reflect.Value) bool { - switch v.Kind() { +func hasLength(k reflect.Kind) bool { + switch k { case reflect.Array, reflect.Slice, reflect.Map: return true } diff --git a/pkg/testutil/require_test.go b/pkg/testutil/require_test.go new file mode 100644 index 0000000000..e72b915504 --- /dev/null +++ b/pkg/testutil/require_test.go @@ -0,0 +1,10 @@ +package testutil + +import "testing" + +func TestRequireEqualEmptyNil(t *testing.T) { + RequireEqualEmptyNil(t, []int(nil), []int(nil)) + RequireEqualEmptyNil(t, []int(nil), []int{}) + RequireEqualEmptyNil(t, []int{}, []int(nil)) + RequireEqualEmptyNil(t, []int{}, []int{}) +}