cmd/evm: run blocktests in predictable order

This commit is contained in:
Martin Holst Swende 2023-10-16 11:19:31 +02:00
parent 16fa415557
commit c311498c01
No known key found for this signature in database
GPG key ID: 683B438C05A5DDF0

View file

@ -21,6 +21,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"os" "os"
"sort"
"github.com/ethereum/go-ethereum/core/rawdb" "github.com/ethereum/go-ethereum/core/rawdb"
"github.com/ethereum/go-ethereum/core/vm" "github.com/ethereum/go-ethereum/core/vm"
@ -60,9 +61,16 @@ func blockTestCmd(ctx *cli.Context) error {
if err = json.Unmarshal(src, &tests); err != nil { if err = json.Unmarshal(src, &tests); err != nil {
return err return err
} }
for i, test := range tests { // run them in order
var keys []string
for k, _ := range tests {
keys = append(keys, k)
}
sort.Strings(keys)
for _, name := range keys {
test := tests[name]
if err := test.Run(false, rawdb.HashScheme, tracer); err != nil { if err := test.Run(false, rawdb.HashScheme, tracer); err != nil {
return fmt.Errorf("test %v: %w", i, err) return fmt.Errorf("test %v: %w", name, err)
} }
} }
return nil return nil