diff options
Diffstat (limited to 'tests/vm_test.go')
-rw-r--r-- | tests/vm_test.go | 129 |
1 files changed, 14 insertions, 115 deletions
diff --git a/tests/vm_test.go b/tests/vm_test.go index b546007fb..5289ba355 100644 --- a/tests/vm_test.go +++ b/tests/vm_test.go @@ -17,122 +17,21 @@ package tests import ( - "os" - "path/filepath" "testing" -) - -func BenchmarkVmAckermann32Tests(b *testing.B) { - fn := filepath.Join(vmTestDir, "vmPerformanceTest.json") - if err := BenchVmTest(fn, bconf{"ackermann32", os.Getenv("JITFORCE") == "true", os.Getenv("JITVM") == "true"}, b); err != nil { - b.Error(err) - } -} - -func BenchmarkVmFibonacci16Tests(b *testing.B) { - fn := filepath.Join(vmTestDir, "vmPerformanceTest.json") - if err := BenchVmTest(fn, bconf{"fibonacci16", os.Getenv("JITFORCE") == "true", os.Getenv("JITVM") == "true"}, b); err != nil { - b.Error(err) - } -} - -// I've created a new function for each tests so it's easier to identify where the problem lies if any of them fail. -func TestVmVMArithmetic(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmArithmeticTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmBitwiseLogicOperation(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmBitwiseLogicOperationTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmBlockInfo(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmBlockInfoTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmEnvironmentalInfo(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmEnvironmentalInfoTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmFlowOperation(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmIOandFlowOperationsTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} -func TestVmLogTest(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmLogTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmPerformance(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmPerformanceTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmPushDupSwap(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmPushDupSwapTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmVMSha3(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmSha3Test.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVm(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmtests.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmLog(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmLogTest.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmInputLimits(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmInputLimits.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} - -func TestVmInputLimitsLight(t *testing.T) { - fn := filepath.Join(vmTestDir, "vmInputLimitsLight.json") - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } -} + "github.com/ethereum/go-ethereum/core/vm" +) -func TestVmVMRandom(t *testing.T) { - fns, _ := filepath.Glob(filepath.Join(baseDir, "RandomTests", "*")) - for _, fn := range fns { - if err := RunVmTest(fn, VmSkipTests); err != nil { - t.Error(err) - } - } +func TestVM(t *testing.T) { + t.Parallel() + vmt := new(testMatcher) + vmt.fails("^vmSystemOperationsTest.json/createNameRegistrator$", "fails without parallel execution") + vmt.skipShortMode("^vmPerformanceTest.json") + vmt.skipShortMode("^vmInputLimits(Light)?.json") + + vmt.walk(t, vmTestDir, func(t *testing.T, name string, test *VMTest) { + withTrace(t, test.json.Exec.GasLimit, func(vmconfig vm.Config) error { + return vmt.checkFailure(t, name, test.Run(vmconfig)) + }) + }) } |