Skip to content

Commit d6c1a7e

Browse files
committed
tests: better assertion message in nfd-gc unit tests
1 parent 57f1b79 commit d6c1a7e

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

pkg/nfd-gc/nfd-gc_test.go

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package nfdgarbagecollector
1818

1919
import (
2020
"context"
21+
"fmt"
2122
"testing"
2223
"time"
2324

@@ -42,7 +43,7 @@ func TestNRTGC(t *testing.T) {
4243
errChan := make(chan error)
4344
go func() { errChan <- gc.Run() }()
4445

45-
So(waitForNRT(gc.client), ShouldBeTrue)
46+
So(gc.client, shouldEventuallyHaveNRTs)
4647

4748
gc.Stop()
4849
So(<-errChan, ShouldBeNil)
@@ -53,7 +54,7 @@ func TestNRTGC(t *testing.T) {
5354
errChan := make(chan error)
5455
go func() { errChan <- gc.Run() }()
5556

56-
So(waitForNRT(gc.client, "node1"), ShouldBeTrue)
57+
So(gc.client, shouldEventuallyHaveNRTs, "node1")
5758

5859
gc.Stop()
5960
So(<-errChan, ShouldBeNil)
@@ -68,7 +69,7 @@ func TestNRTGC(t *testing.T) {
6869
err := gc.client.Resource(gvr).Delete(context.TODO(), "node1", metav1.DeleteOptions{})
6970
So(err, ShouldBeNil)
7071

71-
So(waitForNRT(gc.client, "node2"), ShouldBeTrue)
72+
So(gc.client, shouldEventuallyHaveNRTs, "node2")
7273
})
7374
Convey("periodic GC should remove obsolete NRT", t, func() {
7475
gc := newMockGC([]string{"node1", "node2"}, []string{"node1", "node2"})
@@ -84,7 +85,7 @@ func TestNRTGC(t *testing.T) {
8485
_, err := gc.client.Resource(gvr).(fake.MetadataClient).CreateFake(nrt, metav1.CreateOptions{})
8586
So(err, ShouldBeNil)
8687

87-
So(waitForNRT(gc.client, "node1", "node2"), ShouldBeTrue)
88+
So(gc.client, shouldEventuallyHaveNRTs, "node1", "node2")
8889
})
8990
}
9091

@@ -133,22 +134,29 @@ type mockGC struct {
133134
client metadataclient.Interface
134135
}
135136

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]{}
138144
gvr := topologyv1alpha2.SchemeGroupVersion.WithResource("noderesourcetopologies")
139145
for i := 0; i < 2; i++ {
140146
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+
}
142150

143-
nrtNames := sets.NewString()
151+
actual = sets.New[string]()
144152
for _, meta := range rsp.Items {
145-
nrtNames.Insert(meta.Name)
153+
actual.Insert(meta.Name)
146154
}
147155

148-
if nrtNames.Equal(nameSet) {
149-
return true
156+
if actual.Equal(expected) {
157+
return ""
150158
}
151159
time.Sleep(1 * time.Second)
152160
}
153-
return false
161+
return fmt.Sprintf("Expected: %v\nActual: %v", sets.List(expected), sets.List(actual))
154162
}

0 commit comments

Comments
 (0)