From 2de996856f1d570e40305689a1e6da9adc9b6919 Mon Sep 17 00:00:00 2001 From: Jonathan Basseri Date: Fri, 27 Apr 2018 18:02:04 -0700 Subject: [PATCH] Do not use DeepEqual to compare slices in test. This wraps DeepEqual with a helper that considers nil slices and empty slices to be equal. Scheduler code might use a nil slice or empty slice to represent an empty list, so tests should not be sensitive to the difference. Tests could fail because DeepEqual considers nil to be different from an empty slice. --- pkg/scheduler/core/equivalence_cache_test.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/scheduler/core/equivalence_cache_test.go b/pkg/scheduler/core/equivalence_cache_test.go index 9654515c2b4..de5756bc2b2 100644 --- a/pkg/scheduler/core/equivalence_cache_test.go +++ b/pkg/scheduler/core/equivalence_cache_test.go @@ -378,6 +378,14 @@ func TestUpdateResult(t *testing.T) { } } +// slicesEqual wraps reflect.DeepEqual, but returns true when comparing nil and empty slice. +func slicesEqual(a, b []algorithm.PredicateFailureReason) bool { + if len(a) == 0 && len(b) == 0 { + return true + } + return reflect.DeepEqual(a, b) +} + func TestLookupResult(t *testing.T) { tests := []struct { name string @@ -504,9 +512,9 @@ func TestLookupResult(t *testing.T) { if fit != test.expectedPredicateItem.fit { t.Errorf("Failed: %s, expected fit: %v, but got: %v", test.name, test.cachedItem.fit, fit) } - if !reflect.DeepEqual(reasons, test.expectedPredicateItem.reasons) { + if !slicesEqual(reasons, test.expectedPredicateItem.reasons) { t.Errorf("Failed: %s, expected reasons: %v, but got: %v", - test.name, test.cachedItem.reasons, reasons) + test.name, test.expectedPredicateItem.reasons, reasons) } } }