From 1b6ea47fbf59f5e4569e88433f3ab85a45a1df75 Mon Sep 17 00:00:00 2001 From: Aaron Buchwald Date: Tue, 15 Dec 2020 10:35:20 -0500 Subject: Simplify shutdown --- plugin/evm/vm_test.go | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'plugin/evm/vm_test.go') diff --git a/plugin/evm/vm_test.go b/plugin/evm/vm_test.go index 4593404..dbceb1b 100644 --- a/plugin/evm/vm_test.go +++ b/plugin/evm/vm_test.go @@ -8,6 +8,7 @@ import ( "encoding/json" "math/big" "testing" + "time" "github.com/ava-labs/avalanchego/api/keystore" "github.com/ava-labs/avalanchego/cache" @@ -155,11 +156,23 @@ func GenesisVM(t *testing.T, finishBootstrapping bool) (chan engCommon.Message, func TestVMGenesis(t *testing.T) { _, vm, _, _ := GenesisVM(t, true) - defer func() { - if err := vm.Shutdown(); err != nil { - t.Fatal(err) + shutdownChan := make(chan error, 1) + shutdownFunc := func() { + err := vm.Shutdown() + shutdownChan <- err + } + + go shutdownFunc() + shutdownTimeout := 10 * time.Millisecond + ticker := time.NewTicker(shutdownTimeout) + select { + case <-ticker.C: + t.Fatalf("VM shutdown took longer than timeout: %v", shutdownTimeout) + case err := <-shutdownChan: + if err != nil { + t.Fatalf("Shutdown errored: %s", err) } - }() + } } func TestIssueAtomicTxs(t *testing.T) { -- cgit v1.2.3