From ba928796dbc917dfbce90581f31cb2819418a443 Mon Sep 17 00:00:00 2001 From: Mario Vega Date: Wed, 25 Oct 2023 23:58:47 +0000 Subject: [PATCH] cmd/evm: Add `--single-test` option to blocktest --- cmd/evm/blockrunner.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/cmd/evm/blockrunner.go b/cmd/evm/blockrunner.go index 42be6726b5..7ba6fadf85 100644 --- a/cmd/evm/blockrunner.go +++ b/cmd/evm/blockrunner.go @@ -30,11 +30,20 @@ import ( "github.com/urfave/cli/v2" ) +var singleTestFlag = &cli.StringFlag{ + Name: "single-test", + Value: "", + Usage: "Run a single test from the json file", +} + var blockTestCommand = &cli.Command{ Action: blockTestCmd, Name: "blocktest", Usage: "executes the given blockchain tests", ArgsUsage: "", + Flags: []cli.Flag{ + singleTestFlag, + }, } func blockTestCmd(ctx *cli.Context) error { @@ -61,6 +70,17 @@ func blockTestCmd(ctx *cli.Context) error { if err = json.Unmarshal(src, &tests); err != nil { return err } + singleTest := ctx.String(singleTestFlag.Name) + if singleTest != "" { + if test, ok := tests[singleTest]; ok { + if err := test.Run(false, rawdb.HashScheme, tracer); err != nil { + return fmt.Errorf("test %v: %w", singleTest, err) + } + } else { + return fmt.Errorf("test %v not found", singleTest) + } + return nil + } // run them in order var keys []string for key := range tests {