From 86c41f13e1ee282d15ee12026c2294257313d7fe Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Mon, 26 Jun 2017 17:05:57 +0200 Subject: Add test cases for RETURNDATACOPY after a successful CREATE should not throw if size = offset = zero --- ...copy_0_0_following_successful_createFiller.json | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json (limited to 'src') diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json new file mode 100644 index 000000000..36b716b3d --- /dev/null +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json @@ -0,0 +1,82 @@ +{ + "returndatacopy_0_0_following_successful_create" : { + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Frontier", "Homestead", "EIP150", "EIP158"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x01" + } + } + } + }, + { "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["Metropolis"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x00" + } + } + } + } + ], + "pre" : { + "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }", + "code" : "0x7d111122223333444455556666777788889999aaaabbbbccccddddeeeeffff60005260206000f3", + "nonce" : "0x00", + "storage" : { + } + }, + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (seq (create (STOP)) (RETURNDATACOPY 0 0 0) (SSTORE 0 (MLOAD 0)) )}", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} -- cgit v1.2.3 From b9c7079ed7d29c99f5ea0bcc6ed981da43d598db Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Wed, 28 Jun 2017 13:59:14 +0200 Subject: Address @winsvega's comments --- ...eturndatacopy_0_0_following_successful_create.json | 19 ++++++------------- ...atacopy_0_0_following_successful_createFiller.json | 10 +--------- 2 files changed, 7 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json b/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json index 463fb6d02..60dd845d9 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json @@ -2,7 +2,7 @@ "returndatacopy_0_0_following_successful_create" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.5109b9a4.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.5ad949e6.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json" }, "env" : { @@ -16,7 +16,7 @@ "post" : { "EIP150" : [ { - "hash" : "0x2eda447d7fbf46cc71455a022bd2e35c40df39f46d9f550aef151fd859319f30", + "hash" : "0xa0e1a5e9eda3286789d1494bc14d1fb7e335e51ca6af7ee1c66c904be899699e", "indexes" : { "data" : 0, "gas" : 0, @@ -26,7 +26,7 @@ ], "EIP158" : [ { - "hash" : "0x2eda447d7fbf46cc71455a022bd2e35c40df39f46d9f550aef151fd859319f30", + "hash" : "0xa0e1a5e9eda3286789d1494bc14d1fb7e335e51ca6af7ee1c66c904be899699e", "indexes" : { "data" : 0, "gas" : 0, @@ -36,7 +36,7 @@ ], "Frontier" : [ { - "hash" : "0x2eda447d7fbf46cc71455a022bd2e35c40df39f46d9f550aef151fd859319f30", + "hash" : "0xa0e1a5e9eda3286789d1494bc14d1fb7e335e51ca6af7ee1c66c904be899699e", "indexes" : { "data" : 0, "gas" : 0, @@ -46,7 +46,7 @@ ], "Homestead" : [ { - "hash" : "0x2eda447d7fbf46cc71455a022bd2e35c40df39f46d9f550aef151fd859319f30", + "hash" : "0xa0e1a5e9eda3286789d1494bc14d1fb7e335e51ca6af7ee1c66c904be899699e", "indexes" : { "data" : 0, "gas" : 0, @@ -56,7 +56,7 @@ ], "Metropolis" : [ { - "hash" : "0xcd02780bb221b80c44d77a4198124e02e4d00cadd02c31226e5c61b696e993ef", + "hash" : "0x6045552a0f67f71dbe0bd165b03178a7c94d6b388ba265f68b5969e04ccf2507", "indexes" : { "data" : 0, "gas" : 0, @@ -66,13 +66,6 @@ ] }, "pre" : { - "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x00", - "code" : "0x7d111122223333444455556666777788889999aaaabbbbccccddddeeeeffff60005260206000f3", - "nonce" : "0x00", - "storage" : { - } - }, "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", "code" : "0x596000526001806022600051396000516000f0506000600060003e6000516000550000", diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json index 36b716b3d..421215345 100644 --- a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json @@ -39,17 +39,9 @@ } ], "pre" : { - "0x0aabbccdd5c57f15886f9b263e2f6d2d6c7b5ec6" : { - "balance" : "0x00", - "code" : "{ (seq (MSTORE 0 0x0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff) (RETURN 0 32)) }", - "code" : "0x7d111122223333444455556666777788889999aaaabbbbccccddddeeeeffff60005260206000f3", - "nonce" : "0x00", - "storage" : { - } - }, "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "{ (seq (create (STOP)) (RETURNDATACOPY 0 0 0) (SSTORE 0 (MLOAD 0)) )}", + "code" : "{ (create (STOP)) (RETURNDATACOPY 0 0 0) (SSTORE 0 (MLOAD 0)) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" -- cgit v1.2.3 From 674ba3feaec3cf20038fd8e264f0729c8f5c90e7 Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Wed, 28 Jun 2017 15:13:45 +0200 Subject: Add a test about RETURNDATACOPY after a successful CREATE should throw exception if offset is not zero --- ...returndatacopy_following_successful_create.json | 101 +++++++++++++++++++++ ...datacopy_following_successful_createFiller.json | 60 ++++++++++++ 2 files changed, 161 insertions(+) create mode 100644 GeneralStateTests/stReturnDataTest/returndatacopy_following_successful_create.json create mode 100644 src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_successful_createFiller.json (limited to 'src') diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_following_successful_create.json b/GeneralStateTests/stReturnDataTest/returndatacopy_following_successful_create.json new file mode 100644 index 000000000..e299d76a1 --- /dev/null +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_following_successful_create.json @@ -0,0 +1,101 @@ +{ + "returndatacopy_following_successful_create" : { + "_info" : { + "comment" : "", + "filledwith" : "cpp-1.3.0+commit.5ad949e6.Linux.g++", + "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_successful_createFiller.json" + }, + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "post" : { + "EIP150" : [ + { + "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + } + ], + "EIP158" : [ + { + "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + } + ], + "Frontier" : [ + { + "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + } + ], + "Homestead" : [ + { + "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + } + ], + "Metropolis" : [ + { + "hash" : "0x83d0eeb43ed2b2bec2f8d3838855b1afb2dd777f3de209ac647009b3ec7a3b5e", + "indexes" : { + "data" : 0, + "gas" : 0, + "value" : 0 + } + } + ] + }, + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "0x596000526001806022600051396000516000f0506020600160003e6000516000550000", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} \ No newline at end of file diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_successful_createFiller.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_successful_createFiller.json new file mode 100644 index 000000000..07400fc74 --- /dev/null +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_following_successful_createFiller.json @@ -0,0 +1,60 @@ +{ + "returndatacopy_following_successful_create" : { + "env" : { + "currentCoinbase" : "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "currentDifficulty" : "0x20000", + "currentGasLimit" : "0x0a00000000", + "currentNumber" : "0x01", + "currentTimestamp" : "0x03e8", + "previousHash" : "0x5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6" + }, + "expect" : [ + { "indexes" : { + "data" : -1, + "gas" : -1, + "value" : -1 + }, + "network" : ["ALL"], + "result" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "storage" : { + "0x00" : "0x02" + } + } + } + } + ], + "pre" : { + "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { + "balance" : "0x00", + "code" : "{ (create (STOP)) (RETURNDATACOPY 0 1 32) (SSTORE 0 (MLOAD 0)) }", + "nonce" : "0x00", + "storage" : { + "0x00" : "0x02" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" : { + "balance" : "0x6400000000", + "code" : "", + "nonce" : "0x00", + "storage" : { + } + } + }, + "transaction" : { + "data" : [ + "" + ], + "gasLimit" : [ + "0x0a00000000" + ], + "gasPrice" : "0x01", + "nonce" : "0x00", + "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "to" : "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6", + "value" : [ + "0x00" + ] + } + } +} -- cgit v1.2.3 From 54522c9327db9e4c67c62c604a631fe74a01421d Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Wed, 5 Jul 2017 20:54:46 +0200 Subject: Use (SSTORE 0 1) in the init code to see if the CREATE succeeds or not --- .../returndatacopy_0_0_following_successful_create.json | 14 +++++++------- ...turndatacopy_0_0_following_successful_createFiller.json | 11 ++++++++++- 2 files changed, 17 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json b/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json index 60dd845d9..f41893437 100644 --- a/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json +++ b/GeneralStateTests/stReturnDataTest/returndatacopy_0_0_following_successful_create.json @@ -2,7 +2,7 @@ "returndatacopy_0_0_following_successful_create" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.5ad949e6.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.29c877a3.Linux.g++", "source" : "/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json" }, "env" : { @@ -16,7 +16,7 @@ "post" : { "EIP150" : [ { - "hash" : "0xa0e1a5e9eda3286789d1494bc14d1fb7e335e51ca6af7ee1c66c904be899699e", + "hash" : "0xe4cebf89f5dd511ecb89b3e97ce05d1225202ff5ce2b0b9d81c96892694ac020", "indexes" : { "data" : 0, "gas" : 0, @@ -26,7 +26,7 @@ ], "EIP158" : [ { - "hash" : "0xa0e1a5e9eda3286789d1494bc14d1fb7e335e51ca6af7ee1c66c904be899699e", + "hash" : "0xe4cebf89f5dd511ecb89b3e97ce05d1225202ff5ce2b0b9d81c96892694ac020", "indexes" : { "data" : 0, "gas" : 0, @@ -36,7 +36,7 @@ ], "Frontier" : [ { - "hash" : "0xa0e1a5e9eda3286789d1494bc14d1fb7e335e51ca6af7ee1c66c904be899699e", + "hash" : "0xe4cebf89f5dd511ecb89b3e97ce05d1225202ff5ce2b0b9d81c96892694ac020", "indexes" : { "data" : 0, "gas" : 0, @@ -46,7 +46,7 @@ ], "Homestead" : [ { - "hash" : "0xa0e1a5e9eda3286789d1494bc14d1fb7e335e51ca6af7ee1c66c904be899699e", + "hash" : "0xe4cebf89f5dd511ecb89b3e97ce05d1225202ff5ce2b0b9d81c96892694ac020", "indexes" : { "data" : 0, "gas" : 0, @@ -56,7 +56,7 @@ ], "Metropolis" : [ { - "hash" : "0x6045552a0f67f71dbe0bd165b03178a7c94d6b388ba265f68b5969e04ccf2507", + "hash" : "0xe5612a75f1f88badf3d4faf86108f59eb5c568d658cd7fb37f1fbf8fcf96f307", "indexes" : { "data" : 0, "gas" : 0, @@ -68,7 +68,7 @@ "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "0x596000526001806022600051396000516000f0506000600060003e6000516000550000", + "code" : "0x600580601b60003960006000f0506000600060003e6000600055006001600055", "nonce" : "0x00", "storage" : { "0x00" : "0x01" diff --git a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json index 421215345..a0fc298f9 100644 --- a/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json +++ b/src/GeneralStateTestsFiller/stReturnDataTest/returndatacopy_0_0_following_successful_createFiller.json @@ -20,6 +20,9 @@ "storage" : { "0x00" : "0x01" } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "shouldexist" : false } } }, @@ -34,6 +37,11 @@ "storage" : { "0x00" : "0x00" } + }, + "945304eb96065b2a98b57a48a06ae28d285a71b5" : { + "storage" : { + "0x00" : "0x01" + } } } } @@ -41,7 +49,8 @@ "pre" : { "0x0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : { "balance" : "0x00", - "code" : "{ (create (STOP)) (RETURNDATACOPY 0 0 0) (SSTORE 0 (MLOAD 0)) }", + "code" : "create should succeed. RETURNDATACOPY should also succeed in Metropolis.", + "code" : "{ (create 0 0 (lll {(SSTORE 0 1)} 0)) (RETURNDATACOPY 0 0 0) (SSTORE 0 0) }", "nonce" : "0x00", "storage" : { "0x00" : "0x01" -- cgit v1.2.3