Преглед на файлове

Merge pull request #20338 from etclabscore/feat/statetests-dedupe-walk-refactor

tests: refactor TestState to dedupe walk callback
Péter Szilágyi преди 6 години
родител
ревизия
c5b46a79c1
променени са 1 файла, в които са добавени 17 реда и са изтрити 25 реда
  1. 17 25
      tests/state_test.go

+ 17 - 25
tests/state_test.go

@@ -53,33 +53,25 @@ func TestState(t *testing.T) {
 	//st.fails(`^stRevertTest/RevertPrecompiledTouch(_storage)?\.json/ConstantinopleFix/0`, "bug in test")
 	//st.fails(`^stRevertTest/RevertPrecompiledTouch(_storage)?\.json/ConstantinopleFix/3`, "bug in test")
 
-	st.walk(t, stateTestDir, func(t *testing.T, name string, test *StateTest) {
-		for _, subtest := range test.Subtests() {
-			subtest := subtest
-			key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
-			name := name + "/" + key
-			t.Run(key, func(t *testing.T) {
-				withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
-					_, err := test.Run(subtest, vmconfig)
-					return st.checkFailure(t, name, err)
-				})
-			})
-		}
-	})
 	// For Istanbul, older tests were moved into LegacyTests
-	st.walk(t, legacyStateTestDir, func(t *testing.T, name string, test *StateTest) {
-		for _, subtest := range test.Subtests() {
-			subtest := subtest
-			key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
-			name := name + "/" + key
-			t.Run(key, func(t *testing.T) {
-				withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
-					_, err := test.Run(subtest, vmconfig)
-					return st.checkFailure(t, name, err)
+	for _, dir := range []string{
+		stateTestDir,
+		legacyStateTestDir,
+	} {
+		st.walk(t, dir, func(t *testing.T, name string, test *StateTest) {
+			for _, subtest := range test.Subtests() {
+				subtest := subtest
+				key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
+				name := name + "/" + key
+				t.Run(key, func(t *testing.T) {
+					withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
+						_, err := test.Run(subtest, vmconfig)
+						return st.checkFailure(t, name, err)
+					})
 				})
-			})
-		}
-	})
+			}
+		})
+	}
 }
 
 // Transactions with gasLimit above this value will not get a VM trace on failure.