aboutsummaryrefslogtreecommitdiffstats
path: root/tests/state_test.go
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-10-15 00:32:11 +0800
committerGitHub <noreply@github.com>2016-10-15 00:32:11 +0800
commit81b01f1c2bba8340f9cf2bf1da8ef131e3decd50 (patch)
tree0b2269cb3dfa9719cf3bf7a828c49b0c1ffccab8 /tests/state_test.go
parenta4d9e63d12c80a14294c0d085de6bf711ceec779 (diff)
parent64af2aafdaf16d0bab4c2b89573324b076602bab (diff)
downloaddexon-81b01f1c2bba8340f9cf2bf1da8ef131e3decd50.tar
dexon-81b01f1c2bba8340f9cf2bf1da8ef131e3decd50.tar.gz
dexon-81b01f1c2bba8340f9cf2bf1da8ef131e3decd50.tar.bz2
dexon-81b01f1c2bba8340f9cf2bf1da8ef131e3decd50.tar.lz
dexon-81b01f1c2bba8340f9cf2bf1da8ef131e3decd50.tar.xz
dexon-81b01f1c2bba8340f9cf2bf1da8ef131e3decd50.tar.zst
dexon-81b01f1c2bba8340f9cf2bf1da8ef131e3decd50.zip
Merge pull request #3111 from obscuren/gas-price-fork
core, core/vm: added gas price variance table (EIP #150)
Diffstat (limited to 'tests/state_test.go')
-rw-r--r--tests/state_test.go235
1 files changed, 235 insertions, 0 deletions
diff --git a/tests/state_test.go b/tests/state_test.go
index a8798f91f..1e848ab4e 100644
--- a/tests/state_test.go
+++ b/tests/state_test.go
@@ -440,3 +440,238 @@ func TestHomesteadBounds(t *testing.T) {
t.Error(err)
}
}
+
+// EIP150 tests
+func TestEIP150Specific(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "stEIPSpecificTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150SingleCodeGasPrice(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "stEIPSingleCodeGasPrices.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150MemExpandingCalls(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "stMemExpandingEIPCalls.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadStateSystemOperations(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stSystemOperationsTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadStatePreCompiledContracts(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stPreCompiledContracts.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadStateRecursiveCreate(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stSpecialTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadStateRefund(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stRefundTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadStateInitCode(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stInitCodeTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadStateLog(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stLogTests.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadStateTransaction(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stTransactionTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadCallCreateCallCode(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stCallCreateCallCodeTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadCallCodes(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stCallCodes.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadMemory(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stMemoryTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadMemoryStress(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ if os.Getenv("TEST_VM_COMPLEX") == "" {
+ t.Skip()
+ }
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stMemoryStressTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadQuadraticComplexity(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ if os.Getenv("TEST_VM_COMPLEX") == "" {
+ t.Skip()
+ }
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stQuadraticComplexityTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadWallet(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stWalletTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadDelegateCodes(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stCallDelegateCodes.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadDelegateCodesCallCode(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stCallDelegateCodesCallCode.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}
+
+func TestEIP150HomesteadBounds(t *testing.T) {
+ ruleSet := RuleSet{
+ HomesteadBlock: new(big.Int),
+ HomesteadGasRepriceBlock: big.NewInt(2457000),
+ }
+
+ fn := filepath.Join(stateTestDir, "EIP150", "Homestead", "stBoundsTest.json")
+ if err := RunStateTest(ruleSet, fn, StateSkipTests); err != nil {
+ t.Error(err)
+ }
+}