aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2015-11-05 19:36:25 +0800
committerPéter Szilágyi <peterke@gmail.com>2015-11-05 19:36:25 +0800
commit60e0abb5957560ba760ba4ed2669244f2528bd09 (patch)
treefb62b52d29b3043a636a90d732ec90c310184809
parente3f36d97288636f222f451b26c7c89e334ce4869 (diff)
downloadgo-tangerine-60e0abb5957560ba760ba4ed2669244f2528bd09.tar.gz
go-tangerine-60e0abb5957560ba760ba4ed2669244f2528bd09.tar.zst
go-tangerine-60e0abb5957560ba760ba4ed2669244f2528bd09.zip
whisper: fix datarace in expiration test
-rw-r--r--whisper/whisper_test.go13
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")
}
}