From e6820bd0ca6869654f35b231618bd3ca33478388 Mon Sep 17 00:00:00 2001 From: Yifan Gu Date: Thu, 26 Mar 2015 15:14:02 -0700 Subject: [PATCH] kubelet_test: Fix verifyStringArrayEqualsAnyOrder(). Old implementation can not tell cases where strings are repetitive. e.g. {"a", "b", "b"} and {"a", "a", "b"} will be treated as correct. --- pkg/kubelet/kubelet_test.go | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 533f1553abd..5bec9dc9155 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -27,6 +27,7 @@ import ( "path" "reflect" "regexp" + "sort" "strconv" "strings" "sync" @@ -143,23 +144,15 @@ func verifyStringArrayEquals(t *testing.T, actual, expected []string) { } func verifyStringArrayEqualsAnyOrder(t *testing.T, actual, expected []string) { - invalid := len(actual) != len(expected) - if !invalid { - for _, exp := range expected { - found := false - for _, act := range actual { - if exp == act { - found = true - break - } - } - if !found { - t.Errorf("Expected element %q not found in %#v", exp, actual) - } - } - } - if invalid { - t.Errorf("Expected: %#v, Actual: %#v", expected, actual) + var act, exp []string + copy(act, actual) + copy(exp, expected) + + sort.StringSlice(act).Sort() + sort.StringSlice(exp).Sort() + + if !reflect.DeepEqual(exp, act) { + t.Errorf("Expected(sorted): %#v, Actual(sorted): %#v", exp, act) } }