core/vm, tests: update tests, enable constantinople statetests, fix SAR opcode (#17538)
This commit does a few things at once: - Updates the tests to contain the latest data from ethereum/tests repo. - Enables Constantinople state tests. This is needed to be able to fuzz-test the evm with constantinople rules. - Fixes the error in opSAR that we've known about for some time. I was kind of saving it to see if we hit upon it with the random test generator, but it's difficult to both enable the tests and have the bug there -- we don't want to forget about it, so maybe it's better to just fix it.
This commit is contained in:
committed by
Felix Lange
parent
6a33954731
commit
32f28a9360
@ -91,6 +91,7 @@ type testMatcher struct {
|
||||
failpat []testFailure
|
||||
skiploadpat []*regexp.Regexp
|
||||
skipshortpat []*regexp.Regexp
|
||||
whitelistpat *regexp.Regexp
|
||||
}
|
||||
|
||||
type testConfig struct {
|
||||
@ -121,6 +122,10 @@ func (tm *testMatcher) fails(pattern string, reason string) {
|
||||
tm.failpat = append(tm.failpat, testFailure{regexp.MustCompile(pattern), reason})
|
||||
}
|
||||
|
||||
func (tm *testMatcher) whitelist(pattern string) {
|
||||
tm.whitelistpat = regexp.MustCompile(pattern)
|
||||
}
|
||||
|
||||
// config defines chain config for tests matching the pattern.
|
||||
func (tm *testMatcher) config(pattern string, cfg params.ChainConfig) {
|
||||
tm.configpat = append(tm.configpat, testConfig{regexp.MustCompile(pattern), cfg})
|
||||
@ -208,6 +213,11 @@ func (tm *testMatcher) runTestFile(t *testing.T, path, name string, runTest inte
|
||||
if r, _ := tm.findSkip(name); r != "" {
|
||||
t.Skip(r)
|
||||
}
|
||||
if tm.whitelistpat != nil {
|
||||
if !tm.whitelistpat.MatchString(name) {
|
||||
t.Skip("Skipped by whitelist")
|
||||
}
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
// Load the file as map[string]<testType>.
|
||||
|
Reference in New Issue
Block a user