Unverified Commit 2e1ecc02 authored by gary rong's avatar gary rong Committed by GitHub

les, miner, accounts/abi/bind: fix load-sensitive unit tests (#20698)

parent 6df973df
...@@ -1384,7 +1384,7 @@ var bindTests = []struct { ...@@ -1384,7 +1384,7 @@ var bindTests = []struct {
if n != 3 { if n != 3 {
t.Fatalf("Invalid bar0 event") t.Fatalf("Invalid bar0 event")
} }
case <-time.NewTimer(100 * time.Millisecond).C: case <-time.NewTimer(3 * time.Second).C:
t.Fatalf("Wait bar0 event timeout") t.Fatalf("Wait bar0 event timeout")
} }
...@@ -1395,7 +1395,7 @@ var bindTests = []struct { ...@@ -1395,7 +1395,7 @@ var bindTests = []struct {
if n != 1 { if n != 1 {
t.Fatalf("Invalid bar event") t.Fatalf("Invalid bar event")
} }
case <-time.NewTimer(100 * time.Millisecond).C: case <-time.NewTimer(3 * time.Second).C:
t.Fatalf("Wait bar event timeout") t.Fatalf("Wait bar event timeout")
} }
close(stopCh) close(stopCh)
......
...@@ -517,7 +517,7 @@ func TestNodeDBExpiration(t *testing.T) { ...@@ -517,7 +517,7 @@ func TestNodeDBExpiration(t *testing.T) {
for _, c := range cases { for _, c := range cases {
ndb.setNB(c.ip, c.balance) ndb.setNB(c.ip, c.balance)
} }
time.Sleep(100 * time.Millisecond) // Ensure the db expirer is registered. clock.WaitForTimers(1)
clock.Run(time.Hour + time.Minute) clock.Run(time.Hour + time.Minute)
select { select {
case <-done: case <-done:
...@@ -527,7 +527,7 @@ func TestNodeDBExpiration(t *testing.T) { ...@@ -527,7 +527,7 @@ func TestNodeDBExpiration(t *testing.T) {
if iterated != 4 { if iterated != 4 {
t.Fatalf("Failed to evict useless negative balances, want %v, got %d", 4, iterated) t.Fatalf("Failed to evict useless negative balances, want %v, got %d", 4, iterated)
} }
clock.WaitForTimers(1)
for _, c := range cases { for _, c := range cases {
ndb.setNB(c.ip, c.balance) ndb.setNB(c.ip, c.balance)
} }
......
...@@ -215,12 +215,16 @@ func testGenerateBlockAndImport(t *testing.T, isClique bool) { ...@@ -215,12 +215,16 @@ func testGenerateBlockAndImport(t *testing.T, isClique bool) {
chain, _ := core.NewBlockChain(db2, nil, b.chain.Config(), engine, vm.Config{}, nil) chain, _ := core.NewBlockChain(db2, nil, b.chain.Config(), engine, vm.Config{}, nil)
defer chain.Stop() defer chain.Stop()
loopErr := make(chan error) var (
newBlock := make(chan struct{}) loopErr = make(chan error)
newBlock = make(chan struct{})
subscribe = make(chan struct{})
)
listenNewBlock := func() { listenNewBlock := func() {
sub := w.mux.Subscribe(core.NewMinedBlockEvent{}) sub := w.mux.Subscribe(core.NewMinedBlockEvent{})
defer sub.Unsubscribe() defer sub.Unsubscribe()
subscribe <- struct{}{}
for item := range sub.Chan() { for item := range sub.Chan() {
block := item.Data.(core.NewMinedBlockEvent).Block block := item.Data.(core.NewMinedBlockEvent).Block
_, err := chain.InsertChain([]*types.Block{block}) _, err := chain.InsertChain([]*types.Block{block})
...@@ -234,9 +238,11 @@ func testGenerateBlockAndImport(t *testing.T, isClique bool) { ...@@ -234,9 +238,11 @@ func testGenerateBlockAndImport(t *testing.T, isClique bool) {
w.skipSealHook = func(task *task) bool { w.skipSealHook = func(task *task) bool {
return len(task.receipts) == 0 return len(task.receipts) == 0
} }
w.start() // Start mining!
go listenNewBlock() go listenNewBlock()
<-subscribe // Ensure the subscription is created
w.start() // Start mining!
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
b.txPool.AddLocal(b.newRandomTx(true)) b.txPool.AddLocal(b.newRandomTx(true))
b.txPool.AddLocal(b.newRandomTx(false)) b.txPool.AddLocal(b.newRandomTx(false))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment