diff --git a/accounts/abi/bind/bind_test.go b/accounts/abi/bind/bind_test.go index fa1a7b1ca7..bbc6d8a45a 100644 --- a/accounts/abi/bind/bind_test.go +++ b/accounts/abi/bind/bind_test.go @@ -1384,7 +1384,7 @@ var bindTests = []struct { if n != 3 { 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") } @@ -1395,7 +1395,7 @@ var bindTests = []struct { if n != 1 { 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") } close(stopCh) diff --git a/les/clientpool_test.go b/les/clientpool_test.go index 06f782ac96..6308113fe7 100644 --- a/les/clientpool_test.go +++ b/les/clientpool_test.go @@ -517,7 +517,7 @@ func TestNodeDBExpiration(t *testing.T) { for _, c := range cases { 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) select { case <-done: @@ -527,7 +527,7 @@ func TestNodeDBExpiration(t *testing.T) { if iterated != 4 { t.Fatalf("Failed to evict useless negative balances, want %v, got %d", 4, iterated) } - + clock.WaitForTimers(1) for _, c := range cases { ndb.setNB(c.ip, c.balance) } diff --git a/miner/worker_test.go b/miner/worker_test.go index 81fb8f1b94..78e09a1767 100644 --- a/miner/worker_test.go +++ b/miner/worker_test.go @@ -215,12 +215,16 @@ func testGenerateBlockAndImport(t *testing.T, isClique bool) { chain, _ := core.NewBlockChain(db2, nil, b.chain.Config(), engine, vm.Config{}, nil) defer chain.Stop() - loopErr := make(chan error) - newBlock := make(chan struct{}) + var ( + loopErr = make(chan error) + newBlock = make(chan struct{}) + subscribe = make(chan struct{}) + ) listenNewBlock := func() { sub := w.mux.Subscribe(core.NewMinedBlockEvent{}) defer sub.Unsubscribe() + subscribe <- struct{}{} for item := range sub.Chan() { block := item.Data.(core.NewMinedBlockEvent).Block _, err := chain.InsertChain([]*types.Block{block}) @@ -234,9 +238,11 @@ func testGenerateBlockAndImport(t *testing.T, isClique bool) { w.skipSealHook = func(task *task) bool { return len(task.receipts) == 0 } - w.start() // Start mining! go listenNewBlock() + <-subscribe // Ensure the subscription is created + w.start() // Start mining! + for i := 0; i < 5; i++ { b.txPool.AddLocal(b.newRandomTx(true)) b.txPool.AddLocal(b.newRandomTx(false))