From c024a1b5068c1891a9f54ef0088e6cd5510edac0 Mon Sep 17 00:00:00 2001 From: Jimmy Zelinskie Date: Tue, 28 Dec 2021 00:10:53 -0500 Subject: [PATCH] pkg/testutil: ensure types in RequireEqualEmptyNil --- pkg/testutil/require.go | 8 +++++--- pkg/testutil/require_test.go | 10 ++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 pkg/testutil/require_test.go 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{}) +}