Commit 0b923364 authored by Anthony Yeh's avatar Anthony Yeh

Deflake TestSyncDeploymentDeletionRace

The cache was sometimes catching up while we were testing the case where the cache is not yet caught up. Before this fix, I could reproduce the failure with the following command. After the fix, it passes. ``` go test -count 100000 -run TestSyncDeploymentDeletionRace ```
parent 38055983
...@@ -195,19 +195,21 @@ func (f *fixture) newController() (*DeploymentController, informers.SharedInform ...@@ -195,19 +195,21 @@ func (f *fixture) newController() (*DeploymentController, informers.SharedInform
return c, informers return c, informers
} }
func (f *fixture) runExpectError(deploymentName string) { func (f *fixture) runExpectError(deploymentName string, startInformers bool) {
f.run_(deploymentName, true) f.run_(deploymentName, startInformers, true)
} }
func (f *fixture) run(deploymentName string) { func (f *fixture) run(deploymentName string) {
f.run_(deploymentName, false) f.run_(deploymentName, true, false)
} }
func (f *fixture) run_(deploymentName string, expectError bool) { func (f *fixture) run_(deploymentName string, startInformers bool, expectError bool) {
c, informers := f.newController() c, informers := f.newController()
stopCh := make(chan struct{}) if startInformers {
defer close(stopCh) stopCh := make(chan struct{})
informers.Start(stopCh) defer close(stopCh)
informers.Start(stopCh)
}
err := c.syncDeployment(deploymentName) err := c.syncDeployment(deploymentName)
if !expectError && err != nil { if !expectError && err != nil {
...@@ -329,7 +331,8 @@ func TestSyncDeploymentDeletionRace(t *testing.T) { ...@@ -329,7 +331,8 @@ func TestSyncDeploymentDeletionRace(t *testing.T) {
// Expect to only recheck DeletionTimestamp. // Expect to only recheck DeletionTimestamp.
f.expectGetDeploymentAction(d) f.expectGetDeploymentAction(d)
// Sync should fail and requeue to let cache catch up. // Sync should fail and requeue to let cache catch up.
f.runExpectError(getKey(d, t)) // Don't start informers, since we don't want cache to catch up for this test.
f.runExpectError(getKey(d, t), false)
} }
// issue: https://github.com/kubernetes/kubernetes/issues/23218 // issue: https://github.com/kubernetes/kubernetes/issues/23218
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment