Skip to content

Commit d8d064f

Browse files
committed
refactor CAPI controller unit test to use PollImmediate
This change removes the `PollImmediateInfinite` calls in the cluster-api controller unit tests in favor of `PollImmediate`. It is being proposed to prevent an edge case where the polling calls would become blocked indefinitely. As we are using fake clients within the unit tests there should be no delay getting a return value, but just in case there is a miss on the poll function the new `PollImmediate` will timeout after 15 seconds.
1 parent d945ca7 commit d8d064f

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ type testSpec struct {
7070
}
7171

7272
const customCAPIGroup = "custom.x-k8s.io"
73+
const fifteenSecondDuration = time.Second * 15
7374

7475
func mustCreateTestController(t *testing.T, testConfigs ...*testConfig) (*machineController, testControllerShutdownFunc) {
7576
t.Helper()
@@ -444,7 +445,7 @@ func createResource(client dynamic.Interface, informer informers.GenericInformer
444445
return err
445446
}
446447

447-
return wait.PollImmediateInfinite(time.Microsecond, func() (bool, error) {
448+
return wait.PollImmediate(time.Microsecond, fifteenSecondDuration, func() (bool, error) {
448449
_, err := informer.Lister().ByNamespace(resource.GetNamespace()).Get(resource.GetName())
449450
if err != nil {
450451
if apierrors.IsNotFound(err) {
@@ -463,7 +464,7 @@ func updateResource(client dynamic.Interface, informer informers.GenericInformer
463464
return err
464465
}
465466

466-
return wait.PollImmediateInfinite(time.Microsecond, func() (bool, error) {
467+
return wait.PollImmediate(time.Microsecond, fifteenSecondDuration, func() (bool, error) {
467468
result, err := informer.Lister().ByNamespace(resource.GetNamespace()).Get(resource.GetName())
468469
if err != nil {
469470
return false, err
@@ -477,7 +478,7 @@ func deleteResource(client dynamic.Interface, informer informers.GenericInformer
477478
return err
478479
}
479480

480-
return wait.PollImmediateInfinite(time.Microsecond, func() (bool, error) {
481+
return wait.PollImmediate(time.Microsecond, fifteenSecondDuration, func() (bool, error) {
481482
_, err := informer.Lister().ByNamespace(resource.GetNamespace()).Get(resource.GetName())
482483
if err != nil && apierrors.IsNotFound(err) {
483484
return true, nil

0 commit comments

Comments
 (0)