Add some extra checking in the tests to prevent flakes.

This commit is contained in:
Brendan Burns 2016-05-23 16:25:02 -07:00
parent 51e308412b
commit 88663fc58b

View File

@ -33,6 +33,7 @@ import (
// can't reliably simulate periodic sync of volumes/claims - it would be // can't reliably simulate periodic sync of volumes/claims - it would be
// either very timing-sensitive or slow to wait for real periodic sync. // either very timing-sensitive or slow to wait for real periodic sync.
func TestControllerSync(t *testing.T) { func TestControllerSync(t *testing.T) {
expectedChanges := []int{1, 4, 1, 1}
tests := []controllerTest{ tests := []controllerTest{
// [Unit test set 5] - controller tests. // [Unit test set 5] - controller tests.
// We test the controller as if // We test the controller as if
@ -121,7 +122,7 @@ func TestControllerSync(t *testing.T) {
}, },
} }
for _, test := range tests { for ix, test := range tests {
glog.V(4).Infof("starting test %q", test.name) glog.V(4).Infof("starting test %q", test.name)
// Initialize the controller // Initialize the controller
@ -148,13 +149,17 @@ func TestControllerSync(t *testing.T) {
time.Sleep(10 * time.Millisecond) time.Sleep(10 * time.Millisecond)
} }
count := reactor.getChangeCount()
// Call the tested function // Call the tested function
err := test.test(ctrl, reactor, test) err := test.test(ctrl, reactor, test)
if err != nil { if err != nil {
t.Errorf("Test %q initial test call failed: %v", test.name, err) t.Errorf("Test %q initial test call failed: %v", test.name, err)
} }
for reactor.getChangeCount() < count+expectedChanges[ix] {
reactor.waitTest() reactor.waitTest()
}
evaluateTestResults(ctrl, reactor, test, t) evaluateTestResults(ctrl, reactor, test, t)
} }