diff --git a/types/mempool/priority_nonce_test.go b/types/mempool/priority_nonce_test.go index e071bd55ca032..b6acda9712988 100644 --- a/types/mempool/priority_nonce_test.go +++ b/types/mempool/priority_nonce_test.go @@ -4,6 +4,7 @@ import ( "fmt" "math" "math/rand" + "sync" "testing" "time" @@ -384,14 +385,28 @@ func (s *MempoolTestSuite) TestIterator() { } // iterate through txs + wg := new(sync.WaitGroup) + wg.Add(1) + go func() { + for j := len(tt.txs); j < len(tt.txs)+100; j++ { + tx := testTx{id: j, priority: int64(rand.Intn(100)), nonce: uint64(j), address: sa} + c := ctx.WithPriority(tx.priority) + _ = pool.Insert(c, tx) + } + wg.Done() + }() + iterator := pool.Select(ctx, nil) for iterator != nil { tx := iterator.Tx().Tx.(testTx) - require.Equal(t, tt.txs[tx.id].p, int(tx.priority)) - require.Equal(t, tt.txs[tx.id].n, int(tx.nonce)) - require.Equal(t, tt.txs[tx.id].a, tx.address) + if tx.id < len(tt.txs) { + require.Equal(t, tt.txs[tx.id].p, int(tx.priority)) + require.Equal(t, tt.txs[tx.id].n, int(tx.nonce)) + require.Equal(t, tt.txs[tx.id].a, tx.address) + } iterator = iterator.Next() } + wg.Wait() }) } }