From 8a5d5b670fd6ffb4b557a5c3b21bb95f99cd64f6 Mon Sep 17 00:00:00 2001 From: Robbie Zhang Date: Wed, 10 Oct 2018 18:43:37 -0700 Subject: [PATCH] Make the metrics test more robust in multi-container case --- providers/azure/metrics_test.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/providers/azure/metrics_test.go b/providers/azure/metrics_test.go index f64ff48ab..b8cf27084 100644 --- a/providers/azure/metrics_test.go +++ b/providers/azure/metrics_test.go @@ -19,7 +19,7 @@ func TestCollectMetrics(t *testing.T) { {desc: "no containers"}, // this is just for sort of fuzzing things, make sure there's no panics {desc: "zeroed stats", stats: [][2]float64{{0, 0}}, rx: 0, tx: 0, collected: time.Now()}, {desc: "normal", stats: [][2]float64{{400.0, 1000.0}}, rx: 100.0, tx: 5000.0, collected: time.Now()}, - {desc: "multiple containers", stats: [][2]float64{{100.0, 250.0}, {400.0, 1000.0}}, rx: 100.0, tx: 439833.0, collected: time.Now()}, + {desc: "multiple containers", stats: [][2]float64{{100.0, 250.0}, {400.0, 1000.0}, {103.0, 3992.0}}, rx: 100.0, tx: 439833.0, collected: time.Now()}, } for _, test := range cases { @@ -30,6 +30,30 @@ func TestCollectMetrics(t *testing.T) { system, net := fakeACIMetrics(pod, test) actual := collectMetrics(pod, system, net) + if len(actual.Containers) != len(expected.Containers) { + t.Fatalf("got unexpected results\nexpected:\n%+v\nactual:\n%+v", expected, actual) + } + + for _, actualContainer := range actual.Containers { + found := false + for _, expectedContainer := range expected.Containers { + if expectedContainer.Name == actualContainer.Name { + if !reflect.DeepEqual(expectedContainer, actualContainer) { + t.Fatalf("got unexpected container\nexpected:\n%+v\nactual:\n%+v", expectedContainer, actualContainer) + } + found = true + break; + } + } + + if !found { + t.Fatalf("Unexpected container:\n%+v", actualContainer) + } + } + + expected.Containers = nil + actual.Containers = nil + if !reflect.DeepEqual(expected, actual) { t.Fatalf("got unexpected results\nexpected:\n%+v\nactual:\n%+v", expected, actual) }