@@ -18,6 +18,7 @@ package nfdgarbagecollector
18
18
19
19
import (
20
20
"context"
21
+ "fmt"
21
22
"testing"
22
23
"time"
23
24
@@ -41,7 +42,7 @@ func TestNRTGC(t *testing.T) {
41
42
errChan := make (chan error )
42
43
go func () { errChan <- gc .Run () }()
43
44
44
- So (waitForNRT ( gc .client ), ShouldBeTrue )
45
+ So (gc .client , shouldEventuallyHaveNRTs )
45
46
46
47
gc .Stop ()
47
48
So (<- errChan , ShouldBeNil )
@@ -52,7 +53,7 @@ func TestNRTGC(t *testing.T) {
52
53
errChan := make (chan error )
53
54
go func () { errChan <- gc .Run () }()
54
55
55
- So (waitForNRT ( gc .client , "node1" ), ShouldBeTrue )
56
+ So (gc .client , shouldEventuallyHaveNRTs , "node1" )
56
57
57
58
gc .Stop ()
58
59
So (<- errChan , ShouldBeNil )
@@ -67,7 +68,7 @@ func TestNRTGC(t *testing.T) {
67
68
err := gc .client .Resource (gvr ).Delete (context .TODO (), "node1" , metav1.DeleteOptions {})
68
69
So (err , ShouldBeNil )
69
70
70
- So (waitForNRT ( gc .client , "node2" ), ShouldBeTrue )
71
+ So (gc .client , shouldEventuallyHaveNRTs , "node2" )
71
72
})
72
73
Convey ("periodic GC should remove obsolete NRT" , t , func () {
73
74
gc := newMockGC ([]string {"node1" , "node2" }, []string {"node1" , "node2" })
@@ -83,7 +84,7 @@ func TestNRTGC(t *testing.T) {
83
84
_ , err := gc .client .Resource (gvr ).(fake.MetadataClient ).CreateFake (nrt , metav1.CreateOptions {})
84
85
So (err , ShouldBeNil )
85
86
86
- So (waitForNRT ( gc .client , "node1" , "node2" ), ShouldBeTrue )
87
+ So (gc .client , shouldEventuallyHaveNRTs , "node1" , "node2" )
87
88
})
88
89
}
89
90
@@ -132,22 +133,29 @@ type mockGC struct {
132
133
client metadataclient.Interface
133
134
}
134
135
135
- func waitForNRT (cli metadataclient.Interface , names ... string ) bool {
136
- nameSet := sets .NewString (names ... )
136
+ func shouldEventuallyHaveNRTs (actualI interface {}, expectedI ... interface {}) string {
137
+ cli := actualI .(metadataclient.Interface )
138
+ expected := sets.Set [string ]{}
139
+ for _ , e := range expectedI {
140
+ expected .Insert (e .(string ))
141
+ }
142
+ actual := sets.Set [string ]{}
137
143
gvr := topologyv1alpha2 .SchemeGroupVersion .WithResource ("noderesourcetopologies" )
138
144
for i := 0 ; i < 2 ; i ++ {
139
145
rsp , err := cli .Resource (gvr ).List (context .TODO (), metav1.ListOptions {})
140
- So (err , ShouldBeNil )
146
+ if err != nil {
147
+ return fmt .Sprintf ("failed to list: %v" , err )
148
+ }
141
149
142
- nrtNames : = sets .NewString ()
150
+ actual = sets .New [ string ] ()
143
151
for _ , meta := range rsp .Items {
144
- nrtNames .Insert (meta .Name )
152
+ actual .Insert (meta .Name )
145
153
}
146
154
147
- if nrtNames .Equal (nameSet ) {
148
- return true
155
+ if actual .Equal (expected ) {
156
+ return ""
149
157
}
150
158
time .Sleep (1 * time .Second )
151
159
}
152
- return false
160
+ return fmt . Sprintf ( "Expected: %v \n Actual: %v" , sets . List ( expected ), sets . List ( actual ))
153
161
}
0 commit comments