Patch for concurrent iterator & others (onto v1.11.6) #386
@ -48,10 +48,10 @@ func TestBlockchain(t *testing.T) {
|
|||||||
// using 4.6 TGas
|
// using 4.6 TGas
|
||||||
bt.skipLoad(`.*randomStatetest94.json.*`)
|
bt.skipLoad(`.*randomStatetest94.json.*`)
|
||||||
bt.walk(t, blockTestDir, func(t *testing.T, name string, test *BlockTest) {
|
bt.walk(t, blockTestDir, func(t *testing.T, name string, test *BlockTest) {
|
||||||
if err := bt.checkFailure(t, name+"/trie", test.Run(false)); err != nil {
|
if err := bt.checkFailure(t, test.Run(false)); err != nil {
|
||||||
t.Errorf("test without snapshotter failed: %v", err)
|
t.Errorf("test without snapshotter failed: %v", err)
|
||||||
}
|
}
|
||||||
if err := bt.checkFailure(t, name+"/snap", test.Run(true)); err != nil {
|
if err := bt.checkFailure(t, test.Run(true)); err != nil {
|
||||||
t.Errorf("test with snapshotter failed: %v", err)
|
t.Errorf("test with snapshotter failed: %v", err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -79,12 +79,12 @@ func TestDifficulty(t *testing.T) {
|
|||||||
dt.config("difficulty.json", mainnetChainConfig)
|
dt.config("difficulty.json", mainnetChainConfig)
|
||||||
|
|
||||||
dt.walk(t, difficultyTestDir, func(t *testing.T, name string, test *DifficultyTest) {
|
dt.walk(t, difficultyTestDir, func(t *testing.T, name string, test *DifficultyTest) {
|
||||||
cfg := dt.findConfig(name)
|
cfg := dt.findConfig(t)
|
||||||
if test.ParentDifficulty.Cmp(params.MinimumDifficulty) < 0 {
|
if test.ParentDifficulty.Cmp(params.MinimumDifficulty) < 0 {
|
||||||
t.Skip("difficulty below minimum")
|
t.Skip("difficulty below minimum")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err := dt.checkFailure(t, name, test.Run(cfg)); err != nil {
|
if err := dt.checkFailure(t, test.Run(cfg)); err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -167,10 +167,9 @@ func (tm *testMatcher) findSkip(name string) (reason string, skipload bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// findConfig returns the chain config matching defined patterns.
|
// findConfig returns the chain config matching defined patterns.
|
||||||
func (tm *testMatcher) findConfig(name string) *params.ChainConfig {
|
func (tm *testMatcher) findConfig(t *testing.T) *params.ChainConfig {
|
||||||
// TODO(fjl): name can be derived from testing.T when min Go version is 1.8
|
|
||||||
for _, m := range tm.configpat {
|
for _, m := range tm.configpat {
|
||||||
if m.p.MatchString(name) {
|
if m.p.MatchString(t.Name()) {
|
||||||
return &m.config
|
return &m.config
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,11 +177,10 @@ func (tm *testMatcher) findConfig(name string) *params.ChainConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// checkFailure checks whether a failure is expected.
|
// checkFailure checks whether a failure is expected.
|
||||||
func (tm *testMatcher) checkFailure(t *testing.T, name string, err error) error {
|
func (tm *testMatcher) checkFailure(t *testing.T, err error) error {
|
||||||
// TODO(fjl): name can be derived from t when min Go version is 1.8
|
|
||||||
failReason := ""
|
failReason := ""
|
||||||
for _, m := range tm.failpat {
|
for _, m := range tm.failpat {
|
||||||
if m.p.MatchString(name) {
|
if m.p.MatchString(t.Name()) {
|
||||||
failReason = m.reason
|
failReason = m.reason
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ func TestRLP(t *testing.T) {
|
|||||||
t.Parallel()
|
t.Parallel()
|
||||||
tm := new(testMatcher)
|
tm := new(testMatcher)
|
||||||
tm.walk(t, rlpTestDir, func(t *testing.T, name string, test *RLPTest) {
|
tm.walk(t, rlpTestDir, func(t *testing.T, name string, test *RLPTest) {
|
||||||
if err := tm.checkFailure(t, name, test.Run()); err != nil {
|
if err := tm.checkFailure(t, test.Run()); err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -64,12 +64,11 @@ func TestState(t *testing.T) {
|
|||||||
for _, subtest := range test.Subtests() {
|
for _, subtest := range test.Subtests() {
|
||||||
subtest := subtest
|
subtest := subtest
|
||||||
key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
|
key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
|
||||||
name := name + "/" + key
|
|
||||||
|
|
||||||
t.Run(key+"/trie", func(t *testing.T) {
|
t.Run(key+"/trie", func(t *testing.T) {
|
||||||
withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
|
withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
|
||||||
_, _, err := test.Run(subtest, vmconfig, false)
|
_, _, err := test.Run(subtest, vmconfig, false)
|
||||||
return st.checkFailure(t, name+"/trie", err)
|
return st.checkFailure(t, err)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
t.Run(key+"/snap", func(t *testing.T) {
|
t.Run(key+"/snap", func(t *testing.T) {
|
||||||
@ -78,7 +77,7 @@ func TestState(t *testing.T) {
|
|||||||
if _, err := snaps.Journal(statedb.IntermediateRoot(false)); err != nil {
|
if _, err := snaps.Journal(statedb.IntermediateRoot(false)); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return st.checkFailure(t, name+"/snap", err)
|
return st.checkFailure(t, err)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -117,6 +116,6 @@ func withTrace(t *testing.T, gasLimit uint64, test func(vm.Config) error) {
|
|||||||
} else {
|
} else {
|
||||||
t.Log("EVM operation log:\n" + buf.String())
|
t.Log("EVM operation log:\n" + buf.String())
|
||||||
}
|
}
|
||||||
//t.Logf("EVM output: 0x%x", tracer.Output())
|
// t.Logf("EVM output: 0x%x", tracer.Output())
|
||||||
//t.Logf("EVM error: %v", tracer.Error())
|
// t.Logf("EVM error: %v", tracer.Error())
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ func TestTransaction(t *testing.T) {
|
|||||||
txt.skipLoad("^ttValue/TransactionWithHighValueOverflow.json")
|
txt.skipLoad("^ttValue/TransactionWithHighValueOverflow.json")
|
||||||
txt.walk(t, transactionTestDir, func(t *testing.T, name string, test *TransactionTest) {
|
txt.walk(t, transactionTestDir, func(t *testing.T, name string, test *TransactionTest) {
|
||||||
cfg := params.MainnetChainConfig
|
cfg := params.MainnetChainConfig
|
||||||
if err := txt.checkFailure(t, name, test.Run(cfg)); err != nil {
|
if err := txt.checkFailure(t, test.Run(cfg)); err != nil {
|
||||||
t.Error(err)
|
t.Error(err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -30,10 +30,10 @@ func TestVM(t *testing.T) {
|
|||||||
|
|
||||||
vmt.walk(t, vmTestDir, func(t *testing.T, name string, test *VMTest) {
|
vmt.walk(t, vmTestDir, func(t *testing.T, name string, test *VMTest) {
|
||||||
withTrace(t, test.json.Exec.GasLimit, func(vmconfig vm.Config) error {
|
withTrace(t, test.json.Exec.GasLimit, func(vmconfig vm.Config) error {
|
||||||
return vmt.checkFailure(t, name+"/trie", test.Run(vmconfig, false))
|
return vmt.checkFailure(t, test.Run(vmconfig, false))
|
||||||
})
|
})
|
||||||
withTrace(t, test.json.Exec.GasLimit, func(vmconfig vm.Config) error {
|
withTrace(t, test.json.Exec.GasLimit, func(vmconfig vm.Config) error {
|
||||||
return vmt.checkFailure(t, name+"/snap", test.Run(vmconfig, true))
|
return vmt.checkFailure(t, test.Run(vmconfig, true))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user