aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYoichi Hirai <i@yoichihirai.com>2017-09-22 22:21:03 +0800
committerYoichi Hirai <i@yoichihirai.com>2017-09-27 17:13:50 +0800
commitab372add116d2255062cb54bbc80c55bacbbdc92 (patch)
treecec6e16a387e4ba69d977d4f4ef4c7bde3d37144 /src
parent8977eb93e97f88b0c8e7b434ce137a9122fd90c5 (diff)
downloaddexon-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar
dexon-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.gz
dexon-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.bz2
dexon-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.lz
dexon-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.xz
dexon-tests-ab372add116d2255062cb54bbc80c55bacbbdc92.tar.zst
dexon-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.json303
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"
+ ]
+ }
+ }
+}