From 31f70e6290e0143b083cce730c070e2877f288f1 Mon Sep 17 00:00:00 2001 From: Sven Rebhan <36194019+srebhan@users.noreply.github.com> Date: Tue, 5 Mar 2024 16:35:41 +0100 Subject: [PATCH] test(processors.snmp_lookup): Fix race in test (#14924) --- plugins/processors/snmp_lookup/store_test.go | 22 ++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/plugins/processors/snmp_lookup/store_test.go b/plugins/processors/snmp_lookup/store_test.go index b092f7602..513116aaa 100644 --- a/plugins/processors/snmp_lookup/store_test.go +++ b/plugins/processors/snmp_lookup/store_test.go @@ -16,14 +16,21 @@ func TestAddBacklog(t *testing.T) { s.notify = func(string, *tagMap) { notifyCount.Add(1) } defer s.destroy() + s.Lock() require.Empty(t, s.deferredUpdates) + s.Unlock() - s.addBacklog("127.0.0.1", time.Now().Add(10*time.Millisecond)) + s.addBacklog("127.0.0.1", time.Now().Add(1*time.Second)) + + s.Lock() require.Contains(t, s.deferredUpdates, "127.0.0.1") + s.Unlock() require.Eventually(t, func() bool { return notifyCount.Load() == 1 - }, time.Second, time.Millisecond) + }, 3*time.Second, 100*time.Millisecond) + s.Lock() require.Empty(t, s.deferredUpdates) + s.Unlock() } func TestLookup(t *testing.T) { @@ -57,17 +64,28 @@ func TestLookup(t *testing.T) { require.Equal(t, tmr, entries.rows) // Second lookup should be deferred minUpdateInterval + s.Lock() require.Empty(t, s.deferredUpdates) + s.Unlock() + s.lookup("127.0.0.1", "999") + require.EqualValues(t, 2, notifyCount.Load()) + + s.Lock() require.Contains(t, s.deferredUpdates, "127.0.0.1") require.WithinDuration(t, time.Now(), s.deferredUpdates["127.0.0.1"], minUpdateInterval) + s.Unlock() // Wait until resolved require.Eventually(t, func() bool { return notifyCount.Load() == 3 }, time.Second, time.Millisecond) + + s.Lock() require.Empty(t, s.deferredUpdates) + s.Unlock() + time.Sleep(minUpdateInterval) // Third lookup should directly update