github.com/jeffallen/go-ethereum@v1.1.4-0.20150910155051-571d3236c49c/tests/state_test.go (about) 1 // Copyright 2015 The go-ethereum Authors 2 // This file is part of the go-ethereum library. 3 // 4 // The go-ethereum library is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU Lesser General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // The go-ethereum library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU Lesser General Public License for more details. 13 // 14 // You should have received a copy of the GNU Lesser General Public License 15 // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. 16 17 package tests 18 19 import ( 20 "os" 21 "path/filepath" 22 "testing" 23 24 "github.com/ethereum/go-ethereum/core/vm" 25 ) 26 27 func init() { 28 if os.Getenv("JITVM") == "true" { 29 vm.ForceJit = true 30 vm.EnableJit = true 31 } 32 } 33 34 func BenchmarkStateCall1024(b *testing.B) { 35 fn := filepath.Join(stateTestDir, "stCallCreateCallCodeTest.json") 36 if err := BenchVmTest(fn, bconf{"Call1024BalanceTooLow", true, os.Getenv("JITVM") == "true"}, b); err != nil { 37 b.Error(err) 38 } 39 } 40 41 func TestStateSystemOperations(t *testing.T) { 42 fn := filepath.Join(stateTestDir, "stSystemOperationsTest.json") 43 if err := RunStateTest(fn, StateSkipTests); err != nil { 44 t.Error(err) 45 } 46 } 47 48 func TestStateExample(t *testing.T) { 49 fn := filepath.Join(stateTestDir, "stExample.json") 50 if err := RunStateTest(fn, StateSkipTests); err != nil { 51 t.Error(err) 52 } 53 } 54 55 func TestStatePreCompiledContracts(t *testing.T) { 56 fn := filepath.Join(stateTestDir, "stPreCompiledContracts.json") 57 if err := RunStateTest(fn, StateSkipTests); err != nil { 58 t.Error(err) 59 } 60 } 61 62 func TestStateRecursiveCreate(t *testing.T) { 63 fn := filepath.Join(stateTestDir, "stRecursiveCreate.json") 64 if err := RunStateTest(fn, StateSkipTests); err != nil { 65 t.Error(err) 66 } 67 } 68 69 func TestStateSpecial(t *testing.T) { 70 fn := filepath.Join(stateTestDir, "stSpecialTest.json") 71 if err := RunStateTest(fn, StateSkipTests); err != nil { 72 t.Error(err) 73 } 74 } 75 76 func TestStateRefund(t *testing.T) { 77 fn := filepath.Join(stateTestDir, "stRefundTest.json") 78 if err := RunStateTest(fn, StateSkipTests); err != nil { 79 t.Error(err) 80 } 81 } 82 83 func TestStateBlockHash(t *testing.T) { 84 fn := filepath.Join(stateTestDir, "stBlockHashTest.json") 85 if err := RunStateTest(fn, StateSkipTests); err != nil { 86 t.Error(err) 87 } 88 } 89 90 func TestStateInitCode(t *testing.T) { 91 fn := filepath.Join(stateTestDir, "stInitCodeTest.json") 92 if err := RunStateTest(fn, StateSkipTests); err != nil { 93 t.Error(err) 94 } 95 } 96 97 func TestStateLog(t *testing.T) { 98 fn := filepath.Join(stateTestDir, "stLogTests.json") 99 if err := RunStateTest(fn, StateSkipTests); err != nil { 100 t.Error(err) 101 } 102 } 103 104 func TestStateTransaction(t *testing.T) { 105 fn := filepath.Join(stateTestDir, "stTransactionTest.json") 106 if err := RunStateTest(fn, StateSkipTests); err != nil { 107 t.Error(err) 108 } 109 } 110 111 func TestCallCreateCallCode(t *testing.T) { 112 fn := filepath.Join(stateTestDir, "stCallCreateCallCodeTest.json") 113 if err := RunStateTest(fn, StateSkipTests); err != nil { 114 t.Error(err) 115 } 116 } 117 118 func TestMemory(t *testing.T) { 119 fn := filepath.Join(stateTestDir, "stMemoryTest.json") 120 if err := RunStateTest(fn, StateSkipTests); err != nil { 121 t.Error(err) 122 } 123 } 124 125 func TestMemoryStress(t *testing.T) { 126 if os.Getenv("TEST_VM_COMPLEX") == "" { 127 t.Skip() 128 } 129 fn := filepath.Join(stateTestDir, "stMemoryStressTest.json") 130 if err := RunStateTest(fn, StateSkipTests); err != nil { 131 t.Error(err) 132 } 133 } 134 135 func TestQuadraticComplexity(t *testing.T) { 136 if os.Getenv("TEST_VM_COMPLEX") == "" { 137 t.Skip() 138 } 139 fn := filepath.Join(stateTestDir, "stQuadraticComplexityTest.json") 140 if err := RunStateTest(fn, StateSkipTests); err != nil { 141 t.Error(err) 142 } 143 } 144 145 func TestSolidity(t *testing.T) { 146 fn := filepath.Join(stateTestDir, "stSolidityTest.json") 147 if err := RunStateTest(fn, StateSkipTests); err != nil { 148 t.Error(err) 149 } 150 } 151 152 func TestWallet(t *testing.T) { 153 fn := filepath.Join(stateTestDir, "stWalletTest.json") 154 if err := RunStateTest(fn, StateSkipTests); err != nil { 155 t.Error(err) 156 } 157 } 158 159 func TestStateTestsRandom(t *testing.T) { 160 fns, _ := filepath.Glob("./files/StateTests/RandomTests/*") 161 for _, fn := range fns { 162 if err := RunStateTest(fn, StateSkipTests); err != nil { 163 t.Error(err) 164 } 165 } 166 }