From 79ca6c7a657f5f6660fb136707edb07951bb3309 Mon Sep 17 00:00:00 2001
From: Felix Lange <fjl@users.noreply.github.com>
Date: Fri, 28 Sep 2018 22:23:47 +0200
Subject: [PATCH] tests: update slow test lists, skip on windows/386 (#17758)

---
 tests/block_test.go | 10 +++++++---
 tests/init_test.go  | 17 +++++++++++------
 tests/state_test.go | 10 +++++++++-
 tests/vm_test.go    |  6 +-----
 4 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/tests/block_test.go b/tests/block_test.go
index c91119929..8315728a6 100644
--- a/tests/block_test.go
+++ b/tests/block_test.go
@@ -32,9 +32,13 @@ func TestBlockchain(t *testing.T) {
 	bt.skipLoad(`^bcTotalDifficultyTest/(lotsOfLeafs|lotsOfBranches|sideChainWithMoreTransactions)`)
 	// This test is broken
 	bt.fails(`blockhashNonConstArg_Constantinople`, "Broken test")
-
-	// Still failing tests
-	//	bt.skipLoad(`^bcWalletTest.*_Byzantium$`)
+	// Slow tests
+	bt.slow(`^bcExploitTest/DelegateCallSpam.json`)
+	bt.slow(`^bcExploitTest/ShanghaiLove.json`)
+	bt.slow(`^bcExploitTest/SuicideIssue.json`)
+	bt.slow(`^bcForkStressTest/`)
+	bt.slow(`^bcGasPricerTest/RPC_API_Test.json`)
+	bt.slow(`^bcWalletTest/`)
 
 	bt.walk(t, blockTestDir, func(t *testing.T, name string, test *BlockTest) {
 		if err := bt.checkFailure(t, name, test.Run()); err != nil {
diff --git a/tests/init_test.go b/tests/init_test.go
index 90a74448a..053cbd6fc 100644
--- a/tests/init_test.go
+++ b/tests/init_test.go
@@ -25,6 +25,7 @@ import (
 	"path/filepath"
 	"reflect"
 	"regexp"
+	"runtime"
 	"sort"
 	"strings"
 	"testing"
@@ -90,7 +91,7 @@ type testMatcher struct {
 	configpat    []testConfig
 	failpat      []testFailure
 	skiploadpat  []*regexp.Regexp
-	skipshortpat []*regexp.Regexp
+	slowpat      []*regexp.Regexp
 	whitelistpat *regexp.Regexp
 }
 
@@ -105,8 +106,8 @@ type testFailure struct {
 }
 
 // skipShortMode skips tests matching when the -short flag is used.
-func (tm *testMatcher) skipShortMode(pattern string) {
-	tm.skipshortpat = append(tm.skipshortpat, regexp.MustCompile(pattern))
+func (tm *testMatcher) slow(pattern string) {
+	tm.slowpat = append(tm.slowpat, regexp.MustCompile(pattern))
 }
 
 // skipLoad skips JSON loading of tests matching the pattern.
@@ -133,11 +134,15 @@ func (tm *testMatcher) config(pattern string, cfg params.ChainConfig) {
 
 // findSkip matches name against test skip patterns.
 func (tm *testMatcher) findSkip(name string) (reason string, skipload bool) {
-	if testing.Short() {
-		for _, re := range tm.skipshortpat {
-			if re.MatchString(name) {
+	isWin32 := runtime.GOARCH == "386" && runtime.GOOS == "windows"
+	for _, re := range tm.slowpat {
+		if re.MatchString(name) {
+			if testing.Short() {
 				return "skipped in -short mode", false
 			}
+			if isWin32 {
+				return "skipped on 32bit windows", false
+			}
 		}
 	}
 	for _, re := range tm.skiploadpat {
diff --git a/tests/state_test.go b/tests/state_test.go
index 91c9a9f44..c52e9abb8 100644
--- a/tests/state_test.go
+++ b/tests/state_test.go
@@ -30,7 +30,15 @@ func TestState(t *testing.T) {
 
 	st := new(testMatcher)
 	// Long tests:
-	st.skipShortMode(`^stQuadraticComplexityTest/`)
+	st.slow(`^stAttackTest/ContractCreationSpam`)
+	st.slow(`^stBadOpcode/badOpcodes`)
+	st.slow(`^stPreCompiledContracts/modexp`)
+	st.slow(`^stQuadraticComplexityTest/`)
+	st.slow(`^stStaticCall/static_Call50000`)
+	st.slow(`^stStaticCall/static_Return50000`)
+	st.slow(`^stStaticCall/static_Call1MB`)
+	st.slow(`^stSystemOperationsTest/CallRecursiveBomb`)
+	st.slow(`^stTransactionTest/Opcodes_TransactionInit`)
 	// Broken tests:
 	st.skipLoad(`^stTransactionTest/OverflowGasRequire\.json`) // gasLimit > 256 bits
 	st.skipLoad(`^stTransactionTest/zeroSigTransa[^/]*\.json`) // EIP-86 is not supported yet
diff --git a/tests/vm_test.go b/tests/vm_test.go
index c9f5e225e..441483dff 100644
--- a/tests/vm_test.go
+++ b/tests/vm_test.go
@@ -25,13 +25,9 @@ import (
 func TestVM(t *testing.T) {
 	t.Parallel()
 	vmt := new(testMatcher)
+	vmt.slow("^vmPerformance")
 	vmt.fails("^vmSystemOperationsTest.json/createNameRegistrator$", "fails without parallel execution")
 
-	vmt.skipLoad(`^vmInputLimits(Light)?.json`) // log format broken
-
-	vmt.skipShortMode("^vmPerformanceTest.json")
-	vmt.skipShortMode("^vmInputLimits(Light)?.json")
-
 	vmt.walk(t, vmTestDir, func(t *testing.T, name string, test *VMTest) {
 		withTrace(t, test.json.Exec.GasLimit, func(vmconfig vm.Config) error {
 			return vmt.checkFailure(t, name, test.Run(vmconfig))
-- 
GitLab