From f1adbf1d10c6f23697aade908e0d668887f0a48f Mon Sep 17 00:00:00 2001 From: Shufang Date: Thu, 27 Aug 2020 00:23:55 -0700 Subject: [PATCH 1/2] Improve TestDestroy unit test validation to make it not flaky. --- npm/ipsm/ipsm_test.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/npm/ipsm/ipsm_test.go b/npm/ipsm/ipsm_test.go index 1e98487049..ec188199ac 100644 --- a/npm/ipsm/ipsm_test.go +++ b/npm/ipsm/ipsm_test.go @@ -468,12 +468,21 @@ func TestDestroy(t *testing.T) { } }() - if err := ipsMgr.AddToSet("test-set", "1.2.3.4", util.IpsetNetHashFlag, ""); err != nil { + setName := "test-destroy" + testIP := "1.2.3.4" + if err := ipsMgr.AddToSet(setName, testIP, util.IpsetNetHashFlag, ""); err != nil { t.Errorf("TestDestroy failed @ ipsMgr.AddToSet") } - if err := ipsMgr.Destroy(); err != nil { - t.Errorf("TestDestroy failed @ ipsMgr.Destroy") + // Call Destroy and validate set doesn't exist. + ipsMgr.Destroy() + entry := &ipsEntry{ + operationFlag: util.IPsetCheckListFlag, + set: util.GetHashedName(setName), + } + + if _, err := ipsMgr.Run(entry); err == nil { + t.Errorf("TestDestroy failed @ ipsMgr.Destroy since %s still exist in kernel", setName) } } From d5b9c67348444df3180147508394949d871899fc Mon Sep 17 00:00:00 2001 From: Shufang Date: Wed, 16 Sep 2020 11:59:05 -0700 Subject: [PATCH 2/2] Change set name to be specific for every unit test scenario and avoid flaky test. --- npm/ipsm/ipsm_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npm/ipsm/ipsm_test.go b/npm/ipsm/ipsm_test.go index ec188199ac..dfbeb8dac1 100644 --- a/npm/ipsm/ipsm_test.go +++ b/npm/ipsm/ipsm_test.go @@ -244,7 +244,7 @@ func TestDeleteSet(t *testing.T) { } }() - testSetName := "test-set" + testSetName := "test-delete-set" if err := ipsMgr.CreateSet(testSetName, append([]string{util.IpsetNetHashFlag})); err != nil { t.Errorf("TestDeleteSet failed @ ipsMgr.CreateSet") } @@ -350,7 +350,7 @@ func TestDeleteFromSet(t *testing.T) { } }() - testSetName := "test-set" + testSetName := "test-delete-from-set" if err := ipsMgr.AddToSet(testSetName, "1.2.3.4", util.IpsetNetHashFlag, ""); err != nil { t.Errorf("TestDeleteFromSet failed @ ipsMgr.AddToSet") }