From 10ea0443b7884d5b96f1e3acc557a5414f87a5b7 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 7 Nov 2023 13:27:07 +0100 Subject: [PATCH] cmd/devp2p: add -node flag for testing --- cmd/devp2p/rlpxcmd.go | 14 +++++++++-- cmd/devp2p/runtest.go | 45 +++++++++++++++++++++++------------- internal/flags/categories.go | 1 + 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/cmd/devp2p/rlpxcmd.go b/cmd/devp2p/rlpxcmd.go index 6f6d02d927..aa7d065818 100644 --- a/cmd/devp2p/rlpxcmd.go +++ b/cmd/devp2p/rlpxcmd.go @@ -54,6 +54,7 @@ var ( testPatternFlag, testTAPFlag, testChainDirFlag, + testNodeFlag, testNodeJWTFlag, testNodeEngineFlag, }, @@ -61,12 +62,13 @@ var ( rlpxSnapTestCommand = &cli.Command{ Name: "snap-test", Usage: "Runs snap protocol tests against a node", - ArgsUsage: "", + ArgsUsage: "", Action: rlpxSnapTest, Flags: []cli.Flag{ testPatternFlag, testTAPFlag, testChainDirFlag, + testNodeFlag, testNodeJWTFlag, testNodeEngineFlag, }, @@ -136,8 +138,16 @@ type testParams struct { } func cliTestParams(ctx *cli.Context) *testParams { + nodeStr := ctx.String(testNodeFlag.Name) + if nodeStr == "" { + exit(fmt.Errorf("missing -%s", testNodeFlag.Name)) + } + node, err := parseNode(nodeStr) + if err != nil { + exit(err) + } p := testParams{ - node: getNodeArg(ctx), + node: node, engineAPI: ctx.String(testNodeEngineFlag.Name), jwt: ctx.String(testNodeJWTFlag.Name), chainDir: ctx.String(testChainDirFlag.Name), diff --git a/cmd/devp2p/runtest.go b/cmd/devp2p/runtest.go index 6c370a5833..8abb7ee53a 100644 --- a/cmd/devp2p/runtest.go +++ b/cmd/devp2p/runtest.go @@ -20,6 +20,7 @@ import ( "os" "github.com/ethereum/go-ethereum/cmd/devp2p/internal/v4test" + "github.com/ethereum/go-ethereum/internal/flags" "github.com/ethereum/go-ethereum/internal/utesting" "github.com/ethereum/go-ethereum/log" "github.com/urfave/cli/v2" @@ -27,38 +28,50 @@ import ( var ( testPatternFlag = &cli.StringFlag{ - Name: "run", - Usage: "Pattern of test suite(s) to run", + Name: "run", + Usage: "Pattern of test suite(s) to run", + Category: flags.TestingCategory, } testTAPFlag = &cli.BoolFlag{ - Name: "tap", - Usage: "Output TAP", + Name: "tap", + Usage: "Output test results in TAP format", + Category: flags.TestingCategory, } // for eth/snap tests testChainDirFlag = &cli.StringFlag{ - Name: "chain", - Usage: "Test chain directory", + Name: "chain", + Usage: "Test chain directory (required)", + Category: flags.TestingCategory, + } + testNodeFlag = &cli.StringFlag{ + Name: "node", + Usage: "Peer-to-Peer endpoint (ENR) of the test node (required)", + Category: flags.TestingCategory, } testNodeJWTFlag = &cli.StringFlag{ - Name: "jwt", - Usage: "JWT for talking to the engine API of the test node", + Name: "jwt", + Usage: "JWT for talking to the engine API of the test node (required)", + Category: flags.TestingCategory, } testNodeEngineFlag = &cli.StringFlag{ - Name: "engineapi", - Usage: "Engine API endpoint of the test node", + Name: "engineapi", + Usage: "Engine API endpoint of the test node (required)", + Category: flags.TestingCategory, } // These two are specific to the discovery tests. testListen1Flag = &cli.StringFlag{ - Name: "listen1", - Usage: "IP address of the first tester", - Value: v4test.Listen1, + Name: "listen1", + Usage: "IP address of the first tester", + Value: v4test.Listen1, + Category: flags.TestingCategory, } testListen2Flag = &cli.StringFlag{ - Name: "listen2", - Usage: "IP address of the second tester", - Value: v4test.Listen2, + Name: "listen2", + Usage: "IP address of the second tester", + Value: v4test.Listen2, + Category: flags.TestingCategory, } ) diff --git a/internal/flags/categories.go b/internal/flags/categories.go index 487684d98b..3ff0767921 100644 --- a/internal/flags/categories.go +++ b/internal/flags/categories.go @@ -35,6 +35,7 @@ const ( LoggingCategory = "LOGGING AND DEBUGGING" MetricsCategory = "METRICS AND STATS" MiscCategory = "MISC" + TestingCategory = "TESTING" DeprecatedCategory = "ALIASED (deprecated)" )