浏览代码

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

gary rong 5 年之前
父节点
当前提交
2e1ecc02bd
共有 3 个文件被更改,包括 13 次插入7 次删除
  1. 2 2
      accounts/abi/bind/bind_test.go
  2. 2 2
      les/clientpool_test.go
  3. 9 3
      miner/worker_test.go

+ 2 - 2
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)

+ 2 - 2
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)
 	}

+ 9 - 3
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))