From 2443b9d0a253a0c9b5d1cc009bdd59dd25a0b826 Mon Sep 17 00:00:00 2001 From: Dmitry Verkhoturov Date: Sat, 4 Sep 2021 23:15:34 +0300 Subject: [PATCH] prevent data race within TestService_UserReplies --- backend/app/store/service/service_test.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/backend/app/store/service/service_test.go b/backend/app/store/service/service_test.go index bd0b5f29..c51d7c98 100644 --- a/backend/app/store/service/service_test.go +++ b/backend/app/store/service/service_test.go @@ -1057,13 +1057,19 @@ func TestService_UserReplies(t *testing.T) { require.Equal(t, 3, len(cc), "3 replies to u1") assert.Equal(t, "developer one u1", u) + // mutex to prevent multiple b.UserReplies calls resulting in data race + l := sync.Mutex{} assert.Eventually(t, func() bool { - cc, u, err = b.UserReplies("radio-t", "u1", 10, time.Millisecond*199) + l.Lock() + defer l.Unlock() + cc, u, err = b.UserReplies("radio-t", "u1", 10, time.Millisecond*299) + require.NoError(t, err) + require.Equal(t, "developer one u1", u) return len(cc) == 1 - }, 300*time.Millisecond, 30*time.Millisecond, "1 reply to u1 in the last 200ms") - require.NoError(t, err) - require.Equal(t, "developer one u1", u) + }, 300*time.Millisecond, 30*time.Millisecond, "1 reply to u1 in the last 300ms") + l.Lock() + defer l.Unlock() cc, u, err = b.UserReplies("radio-t", "u2", 10, time.Hour) assert.NoError(t, err) assert.Equal(t, 0, len(cc), "0 replies to u2")