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  }