diff options
author | Yoichi Hirai <i@yoichihirai.com> | 2017-09-22 22:21:03 +0800 |
---|---|---|
committer | Yoichi Hirai <i@yoichihirai.com> | 2017-09-27 17:13:50 +0800 |
commit | ab372add116d2255062cb54bbc80c55bacbbdc92 (patch) | |
tree | cec6e16a387e4ba69d977d4f4ef4c7bde3d37144 /src | |
parent | 8977eb93e97f88b0c8e7b434ce137a9122fd90c5 (diff) | |
download | tangerine-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar tangerine-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.gz tangerine-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.bz2 tangerine-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.lz tangerine-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.xz tangerine-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.zst tangerine-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.zip |
Add tests that set up a nonempty returndata buffer and then call a contract that reverts
This should fulfill: non-empty returndata buffer --CALL --> REVERT <-- RETURNDATASIZE, to detect "not setting returndata buffer after REVERT"
Diffstat (limited to 'src')
-rw-r--r-- | src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeInCallsOnNonEmptyReturnDataFiller.json | 303 |
1 files changed, 303 insertions, 0 deletions
diff --git a/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeInCallsOnNonEmptyReturnDataFiller.json b/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeInCallsOnNonEmptyReturnDataFiller.json new file mode 100644 index 000000000..1c07ffacf --- /dev/null +++ b/src/GeneralStateTestsFiller/stRevertTest/RevertOpcodeInCallsOnNonEmptyReturnDataFiller.json @@ -0,0 +1,303 @@ +{ + "RevertOpcodeInCallsOnNonEmptyReturnData" : { + "_info" : { + "comment" : "This test checks that the returndata buffer is changed when a subcall REVERTs. In each test case, a non-empty returndata buffer is set up, and then calls into a contract that REVERTs." + }, + "env" : { + "currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x020000", + "currentGasLimit" : "10000000", + "currentNumber" : "1", + "currentTimestamp" : "1000", + "previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : -1 + }, + "network" : ["Byzantium"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x02" : "0x01" + } + } + } + }, + { + "comment" : "OOG", + "indexes" : { + "data" : 0, + "gas" : 1, + "value" : -1 + }, + "network" : ["Byzantium"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 0, + "value" : -1 + }, + "network" : ["Byzantium"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x02" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : 1, + "gas" : 1, + "value" : -1 + }, + "network" : ["Byzantium"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 0, + "value" : -1 + }, + "network" : ["Byzantium"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x02" : "0x01" + } + } + } + }, + { + "indexes" : { + "data" : 2, + "gas" : 1, + "value" : -1 + }, + "network" : ["Byzantium"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + } + } + }, + { + "indexes" : { + "data" : 3, + "gas" : 0, + "value" : -1 + }, + "network" : ["Byzantium"], + "result" : { + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "storage" : { + "0x0a" : "0x01" + } + }, + "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x00" : "0x01" + } + }, + "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { + "nonce" : "0", + "storage" : { + "0x05" : "0x01" + } + } + } + } + ], + "pre" : + { + "a94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1000000000000", + "code" : "", + "nonce" : "0", + "storage" : { + } + }, + "094f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[10]] (CALL 260000 (CALLDATALOAD 0) 0 0 0 0 0)}", + "nonce" : "0", + "storage" : { + "0x0a" : "0xff" + } + }, + "b0005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]] (CALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] (RETURNDATASIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "b1005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]] (CALLCODE 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] (RETURNDATASIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "b2005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]] (DELEGATECALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0) [[2]] (RETURNDATASIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "b3005374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[0]] (CALL 100000 0xb3305374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[2]] (RETURNDATASIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "b3305374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ (CALL 0 0xffff5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[4]] (CALL 50000 0xc94f5374fce5edbc8e2a8697c15331677e6ebf0b 0 0 0 0 0) [[5]] (RETURNDATASIZE) }", + "nonce" : "0", + "storage" : { + } + }, + "c94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [[1]] 12 (REVERT 0 1) [[3]] 13 }", + "nonce" : "0", + "storage" : { + } + }, + "ffff5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "1", + "code" : "{ [1] 12 (RETURN 0 64) }", + "nonce" : "0", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "0x000000000000000000000000b0005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b1005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b2005374fce5edbc8e2a8697c15331677e6ebf0b", + "0x000000000000000000000000b3005374fce5edbc8e2a8697c15331677e6ebf0b" + ], + "gasLimit" : [ + "860000", "28000" + ], + "gasPrice" : "1", + "nonce" : "0", + "secretKey" : "45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "094f5374fce5edbc8e2a8697c15331677e6ebf0b", + "value" : [ + "0" + ] + } + } +} |