forked from cerc-io/plugeth
		
	consensus/ethash: fix flaky test by reading seal results (#21085)
This commit is contained in:
		
							parent
							
								
									e868adde30
								
							
						
					
					
						commit
						befecc9fdf
					
				| @ -97,16 +97,22 @@ func TestRemoteMultiNotify(t *testing.T) { | ||||
| 	ethash.config.Log = testlog.Logger(t, log.LvlWarn) | ||||
| 	defer ethash.Close() | ||||
| 
 | ||||
| 	// Provide a results reader.
 | ||||
| 	// Otherwise the unread results will be logged asynchronously
 | ||||
| 	// and this can happen after the test is finished, causing a panic.
 | ||||
| 	results := make(chan *types.Block, cap(sink)) | ||||
| 
 | ||||
| 	// Stream a lot of work task and ensure all the notifications bubble out.
 | ||||
| 	for i := 0; i < cap(sink); i++ { | ||||
| 		header := &types.Header{Number: big.NewInt(int64(i)), Difficulty: big.NewInt(100)} | ||||
| 		block := types.NewBlockWithHeader(header) | ||||
| 		ethash.Seal(nil, block, nil, nil) | ||||
| 		ethash.Seal(nil, block, results, nil) | ||||
| 	} | ||||
| 
 | ||||
| 	for i := 0; i < cap(sink); i++ { | ||||
| 		select { | ||||
| 		case <-sink: | ||||
| 			<-results | ||||
| 		case <-time.After(10 * time.Second): | ||||
| 			t.Fatalf("notification %d timed out", i) | ||||
| 		} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user