whisper: fix datarace in expiration test

This commit is contained in:
Péter Szilágyi 2015-11-05 13:36:25 +02:00
parent e3f36d9728
commit 60e0abb595

View File

@ -189,13 +189,22 @@ func TestMessageExpiration(t *testing.T) {
t.Fatalf("failed to inject message: %v", err) t.Fatalf("failed to inject message: %v", err)
} }
// Check that the message is inside the cache // 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") t.Fatalf("message not found in cache")
} }
// Wait for expiration and check cache again // Wait for expiration and check cache again
time.Sleep(time.Second) // wait for expiration time.Sleep(time.Second) // wait for expiration
time.Sleep(expirationCycle) // wait for cleanup cycle 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") t.Fatalf("message not expired from cache")
} }
} }