Merge pull request #20338 from etclabscore/feat/statetests-dedupe-walk-refactor
tests: refactor TestState to dedupe walk callback
This commit is contained in:
		@@ -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.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user