Skip to content

Commit 4e270c4

Browse files
committed
add test
1 parent 6ef167b commit 4e270c4

File tree

3 files changed

+35
-3
lines changed

3 files changed

+35
-3
lines changed

pkg/driver/driver.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,9 @@ func (d *Driver) Run() error {
130130

131131
// Remove taint from node to indicate driver startup success
132132
// This is done at the last possible moment to prevent race conditions or false positive removals
133-
go tryRemoveNotReadyTaintUntilSucceed(cloud.DefaultKubernetesAPIClient, time.Second)
133+
go tryRemoveNotReadyTaintUntilSucceed(time.Second, func() error {
134+
return removeNotReadyTaint(cloud.DefaultKubernetesAPIClient)
135+
})
134136

135137
klog.Infof("Listening for connections on address: %#v", listener.Addr())
136138
return d.srv.Serve(listener)

pkg/driver/node.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -515,9 +515,9 @@ func removeNotReadyTaint(k8sClient cloud.KubernetesAPIClient) error {
515515
}
516516

517517
// remove taint may failed, this keep retring until succeed, make sure the taint will eventually being removed
518-
func tryRemoveNotReadyTaintUntilSucceed(k8sClient cloud.KubernetesAPIClient, interval time.Duration) {
518+
func tryRemoveNotReadyTaintUntilSucceed(interval time.Duration, removeFn func() error) {
519519
for {
520-
err := removeNotReadyTaint(k8sClient)
520+
err := removeFn()
521521
if err == nil {
522522
return
523523
}

pkg/driver/node_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package driver
1818

1919
import (
2020
"context"
21+
"errors"
2122
"fmt"
2223
"os"
2324
"reflect"
@@ -988,3 +989,32 @@ func getNodeMock(mockCtl *gomock.Controller, nodeName string, returnNode *corev1
988989

989990
return mockClient, mockNode
990991
}
992+
993+
func TestTryRemoveNotReadyTaintUntilSucceed(t *testing.T) {
994+
{
995+
i := 0
996+
tryRemoveNotReadyTaintUntilSucceed(time.Second, func() error {
997+
i++
998+
if i < 3 {
999+
return errors.New("test")
1000+
}
1001+
1002+
return nil
1003+
})
1004+
1005+
if i != 3 {
1006+
t.Fatalf("unexpected result")
1007+
}
1008+
}
1009+
{
1010+
i := 0
1011+
tryRemoveNotReadyTaintUntilSucceed(time.Second, func() error {
1012+
i++
1013+
return nil
1014+
})
1015+
1016+
if i != 1 {
1017+
t.Fatalf("unexpected result")
1018+
}
1019+
}
1020+
}

0 commit comments

Comments
 (0)