func waitForNewDetacherCallCount( t *testing.T, expectedCallCount int, fakePlugin *volumetesting.FakeVolumePlugin) { err := retryWithExponentialBackOff( time.Duration(5*time.Millisecond), func() (bool, error) { actualCallCount := fakePlugin.GetNewDetacherCallCount() if actualCallCount >= expectedCallCount { return true, nil } t.Logf( "Warning: Wrong NewDetacherCallCount. Expected: <%v> Actual: <%v>. Will retry.", expectedCallCount, actualCallCount) return false, nil }, ) if err != nil { t.Fatalf( "Timed out waiting for NewDetacherCallCount. Expected: <%v> Actual: <%v>", expectedCallCount, fakePlugin.GetNewDetacherCallCount()) } }
func verifyNewDetacherCallCount( t *testing.T, expectZeroNewDetacherCallCount bool, fakePlugin *volumetesting.FakeVolumePlugin) { if expectZeroNewDetacherCallCount && fakePlugin.GetNewDetacherCallCount() != 0 { t.Fatalf("Wrong NewDetacherCallCount. Expected: <0> Actual: <%v>", fakePlugin.GetNewDetacherCallCount()) } }
func waitForDetachCallCount( t *testing.T, expectedDetachCallCount int, fakePlugin *volumetesting.FakeVolumePlugin) { if len(fakePlugin.GetDetachers()) == 0 && expectedDetachCallCount == 0 { return } err := retryWithExponentialBackOff( time.Duration(5*time.Millisecond), func() (bool, error) { for i, detacher := range fakePlugin.GetDetachers() { actualCallCount := detacher.GetDetachCallCount() if actualCallCount == expectedDetachCallCount { return true, nil } t.Logf( "Wrong detacher[%v].GetDetachCallCount(). Expected: <%v> Actual: <%v>. Will try next detacher.", i, expectedDetachCallCount, actualCallCount) } t.Logf( "Warning: No detachers have expected DetachCallCount. Expected: <%v>. Will retry.", expectedDetachCallCount) return false, nil }, ) if err != nil { t.Fatalf( "No detachers have expected DetachCallCount. Expected: <%v>", expectedDetachCallCount) } }