diff options
Diffstat (limited to 'plugin/evm/vm_test.go')
-rw-r--r-- | plugin/evm/vm_test.go | 21 |
1 files changed, 17 insertions, 4 deletions
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) { |