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