test: stop mining at the end of tests

This commit is contained in:
Dirk McCormick 2020-11-12 16:23:46 +01:00
parent d525acdeda
commit 0e3e449bf8
3 changed files with 9 additions and 1 deletions

View File

@ -37,7 +37,12 @@ func (bm *BlockMiner) MineBlocks() {
go func() { go func() {
defer close(bm.done) defer close(bm.done)
for atomic.LoadInt64(&bm.mine) == 1 { for atomic.LoadInt64(&bm.mine) == 1 {
time.Sleep(bm.blocktime) select {
case <-bm.ctx.Done():
return
case <-time.After(bm.blocktime):
}
nulls := atomic.SwapInt64(&bm.nulls, 0) nulls := atomic.SwapInt64(&bm.nulls, 0)
if err := bm.miner.MineOne(bm.ctx, miner.MineReq{ if err := bm.miner.MineOne(bm.ctx, miner.MineReq{
InjectNulls: abi.ChainEpoch(nulls), InjectNulls: abi.ChainEpoch(nulls),

View File

@ -32,6 +32,7 @@ func StartOneNodeOneMiner(ctx context.Context, t *testing.T, blocktime time.Dura
// Start mining blocks // Start mining blocks
bm := test.NewBlockMiner(ctx, t, miner, blocktime) bm := test.NewBlockMiner(ctx, t, miner, blocktime)
bm.MineBlocks() bm.MineBlocks()
t.Cleanup(bm.Stop)
// Get the full node's wallet address // Get the full node's wallet address
fullAddr, err := full.WalletDefaultAddress(ctx) fullAddr, err := full.WalletDefaultAddress(ctx)
@ -67,6 +68,7 @@ func StartTwoNodesOneMiner(ctx context.Context, t *testing.T, blocktime time.Dur
// Start mining blocks // Start mining blocks
bm := test.NewBlockMiner(ctx, t, miner, blocktime) bm := test.NewBlockMiner(ctx, t, miner, blocktime)
bm.MineBlocks() bm.MineBlocks()
t.Cleanup(bm.Stop)
// Send some funds to register the second node // Send some funds to register the second node
fullNodeAddr2, err := fullNode2.WalletNew(ctx, types.KTSecp256k1) fullNodeAddr2, err := fullNode2.WalletNew(ctx, types.KTSecp256k1)

View File

@ -278,6 +278,7 @@ func startNodes(
// Start mining blocks // Start mining blocks
bm := test.NewBlockMiner(ctx, t, miner, blocktime) bm := test.NewBlockMiner(ctx, t, miner, blocktime)
bm.MineBlocks() bm.MineBlocks()
t.Cleanup(bm.Stop)
return &testNodes{lite: lite, full: full, miner: miner, closer: closer} return &testNodes{lite: lite, full: full, miner: miner, closer: closer}
} }