mirror of
https://github.com/tendermint/tendermint.git
synced 2025-12-23 14:25:19 +00:00
test: deflake TestAddAndRemoveListenerConcurrency and TestSyncer_SyncAny (#5101)
Fixes #5094.
This commit is contained in:
@@ -193,24 +193,25 @@ func TestAddAndRemoveListenerConcurrency(t *testing.T) {
|
||||
// Must be executed concurrently to uncover the data race.
|
||||
// 1. RemoveListener
|
||||
go func() {
|
||||
defer close(done1)
|
||||
for i := 0; i < roundCount; i++ {
|
||||
evsw.RemoveListener("listener")
|
||||
}
|
||||
close(done1)
|
||||
}()
|
||||
|
||||
// 2. AddListenerForEvent
|
||||
go func() {
|
||||
defer close(done2)
|
||||
for i := 0; i < roundCount; i++ {
|
||||
index := i
|
||||
err = evsw.AddListenerForEvent("listener", fmt.Sprintf("event%d", index),
|
||||
// we explicitly ignore errors here, since the listener will sometimes be removed
|
||||
// (that's what we're testing)
|
||||
_ = evsw.AddListenerForEvent("listener", fmt.Sprintf("event%d", index),
|
||||
func(data EventData) {
|
||||
t.Errorf("should not run callback for %d.\n", index)
|
||||
stopInputEvent = true
|
||||
})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
close(done2)
|
||||
}()
|
||||
|
||||
<-done1
|
||||
|
||||
@@ -189,6 +189,8 @@ func TestSyncer_SyncAny(t *testing.T) {
|
||||
newState, lastCommit, err := syncer.SyncAny(0)
|
||||
require.NoError(t, err)
|
||||
|
||||
time.Sleep(50 * time.Millisecond) // wait for peers to receive requests
|
||||
|
||||
chunkRequestsMtx.Lock()
|
||||
assert.Equal(t, map[uint32]int{0: 1, 1: 2, 2: 1}, chunkRequests)
|
||||
chunkRequestsMtx.Unlock()
|
||||
|
||||
Reference in New Issue
Block a user