From 43108be93b39d109d1928943b7d1732c9d1ecace Mon Sep 17 00:00:00 2001 From: saintube Date: Fri, 24 May 2024 10:38:13 +0800 Subject: [PATCH] koordlet: fix flaky test in pleg Signed-off-by: saintube --- pkg/koordlet/pleg/pleg_test.go | 48 ++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/pkg/koordlet/pleg/pleg_test.go b/pkg/koordlet/pleg/pleg_test.go index 21443478c..bfea5aae2 100644 --- a/pkg/koordlet/pleg/pleg_test.go +++ b/pkg/koordlet/pleg/pleg_test.go @@ -82,21 +82,6 @@ func (h *testHandler) OnContainerDeleted(podID, containerID string) { } func TestPlegHandlePodEvents(t *testing.T) { - stopCh := make(chan struct{}) - defer close(stopCh) - - pg, err := NewPLEG("./test") - if err != nil { - t.Fatal(err) - } - pg.(*pleg).podWatcher, _ = NewTestWatcher() - pg.(*pleg).containerWatcher, _ = NewTestWatcher() - go pg.Run(stopCh) - - handler := NewTestHandler() - id := pg.AddHandler(handler) - defer pg.RemoverHandler(id) - testCases := []struct { name string mockEvent *inotify.Event @@ -130,10 +115,25 @@ func TestPlegHandlePodEvents(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { + stopCh := make(chan struct{}) + defer close(stopCh) + + pg, err := NewPLEG("./test") + if err != nil { + t.Fatal(err) + } + pg.(*pleg).podWatcher, _ = NewTestWatcher() + pg.(*pleg).containerWatcher, _ = NewTestWatcher() + go pg.Run(stopCh) + + handler := NewTestHandler() + id := pg.AddHandler(handler) + defer pg.RemoverHandler(id) + pg.(*pleg).podWatcher.Event() <- tc.mockEvent - timer := time.NewTimer(100 * time.Millisecond) - defer timer.Stop() if tc.want { + timer := time.NewTimer(2 * time.Second) + defer timer.Stop() select { case evt := <-handler.events: assert.Equal(t, tc.wantEvent, evt, "unexpected event received "+evt.podID) @@ -141,9 +141,11 @@ func TestPlegHandlePodEvents(t *testing.T) { t.Errorf("read event timeout") } } else { + timer := time.NewTimer(100 * time.Millisecond) + defer timer.Stop() select { case evt := <-handler.events: - t.Errorf("unexpceted event received: %v", evt) + t.Errorf("unexpected event received: %v", evt) case <-timer.C: } } @@ -182,7 +184,7 @@ func TestPlegHandleContainerEvents(t *testing.T) { stopCh := make(chan struct{}) defer close(stopCh) - pg, err := NewPLEG("./test-" + tc.name) + pg, err := NewPLEG("./test") if err != nil { t.Fatal(err) } @@ -195,9 +197,9 @@ func TestPlegHandleContainerEvents(t *testing.T) { defer pg.RemoverHandler(id) pg.(*pleg).containerWatcher.Event() <- tc.mockEvent - timer := time.NewTimer(100 * time.Millisecond) - defer timer.Stop() if tc.want { + timer := time.NewTimer(2 * time.Second) + defer timer.Stop() select { case evt := <-handler.events: assert.Equal(t, tc.wantEvent, evt, "unexpected event received") @@ -205,9 +207,11 @@ func TestPlegHandleContainerEvents(t *testing.T) { t.Errorf("read event timeout") } } else { + timer := time.NewTimer(100 * time.Millisecond) + defer timer.Stop() select { case evt := <-handler.events: - t.Errorf("unexpceted event received: %v", evt) + t.Errorf("unexpected event received: %v", evt) case <-timer.C: } }