From dab41e9b7ee5b7b16e93fe876011ac162e71e944 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Thu, 11 Jan 2024 18:11:26 +0330 Subject: [PATCH 1/6] devp2p/internal: skip large tx test on 32-bit builds --- cmd/devp2p/internal/ethtest/suite.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cmd/devp2p/internal/ethtest/suite.go b/cmd/devp2p/internal/ethtest/suite.go index f62d25a83f2b..3ad525072584 100644 --- a/cmd/devp2p/internal/ethtest/suite.go +++ b/cmd/devp2p/internal/ethtest/suite.go @@ -19,6 +19,7 @@ package ethtest import ( "crypto/rand" "math/big" + "math/bits" "reflect" "github.com/ethereum/go-ethereum/common" @@ -62,7 +63,7 @@ func NewSuite(dest *enode.Node, chainDir, engineURL, jwt string) (*Suite, error) } func (s *Suite) EthTests() []utesting.Test { - return []utesting.Test{ + tests := []utesting.Test{ // status {Name: "TestStatus", Fn: s.TestStatus}, // get block headers @@ -78,10 +79,15 @@ func (s *Suite) EthTests() []utesting.Test { // test transactions {Name: "TestTransaction", Fn: s.TestTransaction}, {Name: "TestInvalidTxs", Fn: s.TestInvalidTxs}, - {Name: "TestLargeTxRequest", Fn: s.TestLargeTxRequest}, {Name: "TestNewPooledTxs", Fn: s.TestNewPooledTxs}, {Name: "TestBlobViolations", Fn: s.TestBlobViolations}, } + // This test is often failing on 32-bit CI. + if bits.UintSize > 32 { + tests = append(tests, utesting.Test{Name: "TestLargeTxRequest", Fn: s.TestLargeTxRequest}) + } + return tests + } func (s *Suite) SnapTests() []utesting.Test { From 690564785a5d4281f8356e1ad33b1bdf1665e549 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Thu, 11 Jan 2024 18:17:13 +0330 Subject: [PATCH 2/6] rm blank line --- cmd/devp2p/internal/ethtest/suite.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cmd/devp2p/internal/ethtest/suite.go b/cmd/devp2p/internal/ethtest/suite.go index 3ad525072584..5c693661e739 100644 --- a/cmd/devp2p/internal/ethtest/suite.go +++ b/cmd/devp2p/internal/ethtest/suite.go @@ -87,7 +87,6 @@ func (s *Suite) EthTests() []utesting.Test { tests = append(tests, utesting.Test{Name: "TestLargeTxRequest", Fn: s.TestLargeTxRequest}) } return tests - } func (s *Suite) SnapTests() []utesting.Test { From 8211e01cb76bc4f74144a3e5a62fb8cbbfa351d1 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Fri, 12 Jan 2024 12:59:19 +0330 Subject: [PATCH 3/6] skip on short flag or 386 arch --- cmd/devp2p/internal/ethtest/suite.go | 9 ++------- cmd/devp2p/internal/ethtest/suite_test.go | 8 ++++++++ internal/utesting/utesting.go | 1 + 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cmd/devp2p/internal/ethtest/suite.go b/cmd/devp2p/internal/ethtest/suite.go index 5c693661e739..4f499d41d819 100644 --- a/cmd/devp2p/internal/ethtest/suite.go +++ b/cmd/devp2p/internal/ethtest/suite.go @@ -19,7 +19,6 @@ package ethtest import ( "crypto/rand" "math/big" - "math/bits" "reflect" "github.com/ethereum/go-ethereum/common" @@ -63,7 +62,7 @@ func NewSuite(dest *enode.Node, chainDir, engineURL, jwt string) (*Suite, error) } func (s *Suite) EthTests() []utesting.Test { - tests := []utesting.Test{ + return []utesting.Test{ // status {Name: "TestStatus", Fn: s.TestStatus}, // get block headers @@ -77,16 +76,12 @@ func (s *Suite) EthTests() []utesting.Test { {Name: "TestMaliciousHandshake", Fn: s.TestMaliciousHandshake}, {Name: "TestMaliciousStatus", Fn: s.TestMaliciousStatus}, // test transactions + {Name: "TestLargeTxRequest", Fn: s.TestLargeTxRequest, Slow: true}, {Name: "TestTransaction", Fn: s.TestTransaction}, {Name: "TestInvalidTxs", Fn: s.TestInvalidTxs}, {Name: "TestNewPooledTxs", Fn: s.TestNewPooledTxs}, {Name: "TestBlobViolations", Fn: s.TestBlobViolations}, } - // This test is often failing on 32-bit CI. - if bits.UintSize > 32 { - tests = append(tests, utesting.Test{Name: "TestLargeTxRequest", Fn: s.TestLargeTxRequest}) - } - return tests } func (s *Suite) SnapTests() []utesting.Test { diff --git a/cmd/devp2p/internal/ethtest/suite_test.go b/cmd/devp2p/internal/ethtest/suite_test.go index 79146c8abab2..9068725b38f9 100644 --- a/cmd/devp2p/internal/ethtest/suite_test.go +++ b/cmd/devp2p/internal/ethtest/suite_test.go @@ -21,6 +21,7 @@ import ( "fmt" "os" "path" + "runtime" "testing" "time" @@ -63,6 +64,9 @@ func TestEthSuite(t *testing.T) { } for _, test := range suite.EthTests() { t.Run(test.Name, func(t *testing.T) { + if test.Slow && skipSlow() { + t.Skipf("skipped slow test %s", test.Name) + } result := utesting.RunTests([]utesting.Test{{Name: test.Name, Fn: test.Fn}}, os.Stdout) if result[0].Failed { t.Fatal() @@ -148,3 +152,7 @@ func setupGeth(stack *node.Node, dir string) error { _, err = backend.BlockChain().InsertChain(chain.blocks[1:]) return err } + +func skipSlow() bool { + return testing.Short() || runtime.GOARCH == "386" +} diff --git a/internal/utesting/utesting.go b/internal/utesting/utesting.go index ee99794c647b..8260de1d7603 100644 --- a/internal/utesting/utesting.go +++ b/internal/utesting/utesting.go @@ -35,6 +35,7 @@ import ( type Test struct { Name string Fn func(*T) + Slow bool } // Result is the result of a test execution. From 0f7f6b8b91756daa3ac5b3a30b696c222779d28c Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Fri, 12 Jan 2024 13:09:23 +0330 Subject: [PATCH 4/6] add skip reason --- cmd/devp2p/internal/ethtest/suite.go | 1 - cmd/devp2p/internal/ethtest/suite_test.go | 15 +++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/cmd/devp2p/internal/ethtest/suite.go b/cmd/devp2p/internal/ethtest/suite.go index 4f499d41d819..e49e0fa24576 100644 --- a/cmd/devp2p/internal/ethtest/suite.go +++ b/cmd/devp2p/internal/ethtest/suite.go @@ -105,7 +105,6 @@ func (s *Suite) TestStatus(t *utesting.T) { if err := conn.peer(s.chain, nil); err != nil { t.Fatalf("peering failed: %v", err) } -} // headersMatch returns whether the received headers match the given request func headersMatch(expected []*types.Header, headers []*types.Header) bool { diff --git a/cmd/devp2p/internal/ethtest/suite_test.go b/cmd/devp2p/internal/ethtest/suite_test.go index 9068725b38f9..6a16ff76c30e 100644 --- a/cmd/devp2p/internal/ethtest/suite_test.go +++ b/cmd/devp2p/internal/ethtest/suite_test.go @@ -62,10 +62,11 @@ func TestEthSuite(t *testing.T) { if err != nil { t.Fatalf("could not create new test suite: %v", err) } + skipReason, skip := skipSlow() for _, test := range suite.EthTests() { t.Run(test.Name, func(t *testing.T) { - if test.Slow && skipSlow() { - t.Skipf("skipped slow test %s", test.Name) + if test.Slow && skip { + t.Skipf("%s: %s", test.Name, skipReason) } result := utesting.RunTests([]utesting.Test{{Name: test.Name, Fn: test.Fn}}, os.Stdout) if result[0].Failed { @@ -153,6 +154,12 @@ func setupGeth(stack *node.Node, dir string) error { return err } -func skipSlow() bool { - return testing.Short() || runtime.GOARCH == "386" +func skipSlow() (string, bool) { + if testing.Short() { + return "skipped in -short mode", true + } + if runtime.GOARCH == "386" { + return "skipped on 386 arch", true + } + return "", false } From c1fd67094b6ebd838d5cdf1df17796d14124d423 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Fri, 12 Jan 2024 13:09:58 +0330 Subject: [PATCH 5/6] fix typo --- cmd/devp2p/internal/ethtest/suite.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/devp2p/internal/ethtest/suite.go b/cmd/devp2p/internal/ethtest/suite.go index e49e0fa24576..4f499d41d819 100644 --- a/cmd/devp2p/internal/ethtest/suite.go +++ b/cmd/devp2p/internal/ethtest/suite.go @@ -105,6 +105,7 @@ func (s *Suite) TestStatus(t *utesting.T) { if err := conn.peer(s.chain, nil); err != nil { t.Fatalf("peering failed: %v", err) } +} // headersMatch returns whether the received headers match the given request func headersMatch(expected []*types.Header, headers []*types.Header) bool { From fdf653dd8a184c4873fc93bb38c9d20200e49f35 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Fri, 12 Jan 2024 13:51:09 +0330 Subject: [PATCH 6/6] only short --- .github/workflows/go.yml | 2 +- cmd/devp2p/internal/ethtest/suite_test.go | 16 ++-------------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 7924c521e854..0c673d15f168 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -17,7 +17,7 @@ jobs: with: go-version: 1.21.4 - name: Run tests - run: go test ./... + run: go test -short ./... env: GOOS: linux GOARCH: 386 diff --git a/cmd/devp2p/internal/ethtest/suite_test.go b/cmd/devp2p/internal/ethtest/suite_test.go index 6a16ff76c30e..ad73bc9f90e7 100644 --- a/cmd/devp2p/internal/ethtest/suite_test.go +++ b/cmd/devp2p/internal/ethtest/suite_test.go @@ -21,7 +21,6 @@ import ( "fmt" "os" "path" - "runtime" "testing" "time" @@ -62,11 +61,10 @@ func TestEthSuite(t *testing.T) { if err != nil { t.Fatalf("could not create new test suite: %v", err) } - skipReason, skip := skipSlow() for _, test := range suite.EthTests() { t.Run(test.Name, func(t *testing.T) { - if test.Slow && skip { - t.Skipf("%s: %s", test.Name, skipReason) + if test.Slow && testing.Short() { + t.Skipf("%s: skipping in -short mode", test.Name) } result := utesting.RunTests([]utesting.Test{{Name: test.Name, Fn: test.Fn}}, os.Stdout) if result[0].Failed { @@ -153,13 +151,3 @@ func setupGeth(stack *node.Node, dir string) error { _, err = backend.BlockChain().InsertChain(chain.blocks[1:]) return err } - -func skipSlow() (string, bool) { - if testing.Short() { - return "skipped in -short mode", true - } - if runtime.GOARCH == "386" { - return "skipped on 386 arch", true - } - return "", false -}