diff options
author | Dimitry <winsvega@mail.ru> | 2017-01-09 19:36:16 +0800 |
---|---|---|
committer | Dimitry <winsvega@mail.ru> | 2017-01-09 19:36:16 +0800 |
commit | 133f327a7f06088030a60fd165b957bf4d0ebc52 (patch) | |
tree | 09ac4cf110ca7a509935f815f07f6aa1e6ecd8cc /src | |
parent | a77a8ffbde869d5e86cafe455b8bbbcf3df520f9 (diff) | |
download | tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.gz tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.bz2 tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.lz tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.xz tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.tar.zst tangerine-tests-133f327a7f06088030a60fd165b957bf4d0ebc52.zip |
more revert call tests in contract interactions
Diffstat (limited to 'src')
-rw-r--r-- | src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json | 119 | ||||
-rw-r--r-- | src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json | 29 |
2 files changed, 143 insertions, 5 deletions
diff --git a/src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json b/src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json new file mode 100644 index 000000000..b9d69d4e8 --- /dev/null +++ b/src/GeneralStateTestsFiller/stRevertTest/RevertRemoteSubCallStorageOOGFiller.json @@ -0,0 +1,119 @@ +{ + "RevertRemoteSubCallStorageOOG" : { + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "45678256", + "currentGasLimit" : "10000000", + "currentNumber" : "2675000", + "currentTimestamp" : "1", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : -1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier"], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x01" : "0x0d" + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 2, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "1", + "storage" : { + "0x00" : "0x0c", + "0x01" : "0x0d" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "code" : "contract B ", + "code" : "{", + "code" : " function callback(address x)", + "code" : " {", + "code" : " x.call(bytes4(sha3('stor()'))); ", + "code" : " }", + "code" : "}", + "code" : "", + "code" : "contract A {", + "code" : " int s;", + "code" : " int s2;", + "code" : " function run() returns (bool){", + "code" : " B caller = new B();", + "code" : " caller.callback(this);", + "code" : " s2 = 13;", + "code" : " return true;", + "code" : " }", + "code" : " function stor() {", + "code" : " s = 12;", + "code" : " }", + "code" : "}", + "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c414610049578063c040622614610058575b610000565b346100005761005661007f565b005b346100005761006561008a565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b6000600060405161016f80610163833901809050604051809103906000f080156100005790508073ffffffffffffffffffffffffffffffffffffffff166373027f6d306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b156100005760325a03f11561000057505050600d600181905550600191505b50905600606060405234610000575b610156806100196000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806373027f6d1461003e575b610000565b346100005761006f600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610071565b005b8073ffffffffffffffffffffffffffffffffffffffff1660405180807f73746f7228290000000000000000000000000000000000000000000000000000815250600601905060405180910390207c010000000000000000000000000000000000000000000000000000000090046040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018090506000604051808303816000876161da5a03f192505050505b505600a165627a7a72305820db9c9d1f37fd36768131a0bf9687f465e15b0503452e603be6b6f07b70d72e260029a165627a7a72305820f8ff2f7feef24d01a1cc070e67db9e15ac34810c8e5d1c7f34f3c38148eeae900029", + "nonce" : "", + "storage" : { + } + } + }, + "transaction" : { + "data" : "contract A calls itself. In the sub-call, storage is modified, the calls returns successfully. After that, storage is modified again and then an exception occurs. 0xc0406226 == sha(run())", + "data" : [ + "0xc0406226" + ], + "gasLimit" : [ + "148000", "181000", "145000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "a000000000000000000000000000000000000000", + "value" : [ + "0" + ] + } + } +} diff --git a/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json b/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json index 0fbf3ea39..0b31ac469 100644 --- a/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json +++ b/src/GeneralStateTestsFiller/stRevertTest/RevertSubCallStorageOOGFiller.json @@ -12,8 +12,8 @@ { "indexes" : { "data" : -1, - "gas" : -1, - "value" : -1 + "gas" : 0, + "value" : 0 }, "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], "result" : { @@ -24,6 +24,25 @@ } } } + }, + { + "indexes" : { + "data" : -1, + "gas" : 1, + "value" : 0 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "a000000000000000000000000000000000000000" : { + "balance" : "1", + "nonce" : "0", + "storage" : { + "0x00" : "0x0c", + "0x01" : "0x0d", + "0x02" : "0x0e" + } + } + } } ], "pre" : @@ -50,7 +69,7 @@ "code" : " s = 12;", "code" : " }", "code" : "}", - "code" : "0x0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600181905550600e600281905550600190505b905600a165627a7a7230582090717cc95d17601245cda24500edc484cd0a2ee609184c3cca7515680312b43e0029", + "code" : "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063b28175c4146046578063c0406226146052575b6000565b3460005760506076565b005b34600057605c6081565b604051808215151515815260200191505060405180910390f35b600c6000819055505b565b600060896076565b600d600181905550600e600281905550600190505b905600a165627a7a723058202a8a75d7d795b5bcb9042fb18b283daa90b999a11ddec892f548732235342eb60029", "nonce" : "", "storage" : { } @@ -62,14 +81,14 @@ "0xc0406226" ], "gasLimit" : [ - "81000" + "81000", "181000" ], "gasPrice" : "1", "nonce" : "0", "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "to" : "a000000000000000000000000000000000000000", "value" : [ - "1" + "0", "1" ] } } |