diff options
author | Péter Szilágyi <peterke@gmail.com> | 2015-11-05 19:36:25 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2015-11-05 19:36:25 +0800 |
commit | 60e0abb5957560ba760ba4ed2669244f2528bd09 (patch) | |
tree | fb62b52d29b3043a636a90d732ec90c310184809 /whisper | |
parent | e3f36d97288636f222f451b26c7c89e334ce4869 (diff) | |
download | go-tangerine-60e0abb5957560ba760ba4ed2669244f2528bd09.tar.gz go-tangerine-60e0abb5957560ba760ba4ed2669244f2528bd09.tar.zst go-tangerine-60e0abb5957560ba760ba4ed2669244f2528bd09.zip |
whisper: fix datarace in expiration test
Diffstat (limited to 'whisper')
-rw-r--r-- | whisper/whisper_test.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/whisper/whisper_test.go b/whisper/whisper_test.go index b5a919984..1a9a8667a 100644 --- a/whisper/whisper_test.go +++ b/whisper/whisper_test.go @@ -189,13 +189,22 @@ func TestMessageExpiration(t *testing.T) { t.Fatalf("failed to inject message: %v", err) } // Check that the message is inside the cache - if _, ok := node.messages[envelope.Hash()]; !ok { + node.poolMu.RLock() + _, found := node.messages[envelope.Hash()] + node.poolMu.RUnlock() + + if !found { t.Fatalf("message not found in cache") } // Wait for expiration and check cache again time.Sleep(time.Second) // wait for expiration time.Sleep(expirationCycle) // wait for cleanup cycle - if _, ok := node.messages[envelope.Hash()]; ok { + + node.poolMu.RLock() + _, found = node.messages[envelope.Hash()] + node.poolMu.RUnlock() + + if found { t.Fatalf("message not expired from cache") } } |