From afc476dff9b9f0df3d4204c1382ee886dfcc8e35 Mon Sep 17 00:00:00 2001 From: Yoichi Hirai Date: Mon, 10 Jul 2017 15:33:23 +0200 Subject: Add a test case baseLength = modLength = 0, but expLength = 2^255 --- .../stPreCompiledContracts/modexp.json | 45 +++++++++++++++++++++- .../stPreCompiledContracts/modexpFiller.json | 8 ++-- 2 files changed, 48 insertions(+), 5 deletions(-) diff --git a/GeneralStateTests/stPreCompiledContracts/modexp.json b/GeneralStateTests/stPreCompiledContracts/modexp.json index 91044f4b4..34d2b9411 100644 --- a/GeneralStateTests/stPreCompiledContracts/modexp.json +++ b/GeneralStateTests/stPreCompiledContracts/modexp.json @@ -2,7 +2,7 @@ "modexp" : { "_info" : { "comment" : "", - "filledwith" : "cpp-1.3.0+commit.29c877a3.Linux.g++", + "filledwith" : "cpp-1.3.0+commit.b08c7b41.Linux.clang", "source" : "/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json" }, "env" : { @@ -254,6 +254,14 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0xd841e6f32bacdeef36dc820063af8b30b3ecf37ab6a3b76e60ac1449faa8ed5d", + "indexes" : { + "data" : 30, + "gas" : 0, + "value" : 0 + } } ], "EIP158" : [ @@ -496,6 +504,14 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0xd841e6f32bacdeef36dc820063af8b30b3ecf37ab6a3b76e60ac1449faa8ed5d", + "indexes" : { + "data" : 30, + "gas" : 0, + "value" : 0 + } } ], "Frontier" : [ @@ -738,6 +754,14 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", + "indexes" : { + "data" : 30, + "gas" : 0, + "value" : 0 + } } ], "Homestead" : [ @@ -980,6 +1004,14 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0xbbe41bbf20a3f2663091f141148c584776955f1ddfe40a9c56eeb43c63cf961f", + "indexes" : { + "data" : 30, + "gas" : 0, + "value" : 0 + } } ], "Metropolis" : [ @@ -1222,6 +1254,14 @@ "gas" : 0, "value" : 0 } + }, + { + "hash" : "0xd841e6f32bacdeef36dc820063af8b30b3ecf37ab6a3b76e60ac1449faa8ed5d", + "indexes" : { + "data" : 30, + "gas" : 0, + "value" : 0 + } } ] }, @@ -1272,7 +1312,8 @@ "0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000064", "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030006", "0x00000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000" + "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000", + "0x000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ], "gasLimit" : [ "0x05f5e100" diff --git a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json index c18e4fa7f..1b051856e 100644 --- a/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json +++ b/src/GeneralStateTestsFiller/stPreCompiledContracts/modexpFiller.json @@ -59,7 +59,7 @@ }, { "indexes" : { - "data" : [1,5,8,9,10,12,13,15,18,19,20,21,22,23,24], + "data" : [1,5,8,9,10,12,13,15,18,19,20,21,22,23,24,30], "gas" : -1, "value" : -1 }, @@ -198,7 +198,8 @@ "26 - bigint_expmod precompiled contract returns 1 for 0 ^ 0 mod 100", "27 - 02 ** 03 % 06, but exp with 256 bytes of zero in front.", "28 - base length 2^64", - "29 - exp length 2^64; returns 0 because mod is zero" + "29 - exp length 2^64; returns 0 because mod is zero", + "30 - base and mod have zero-length. exp's length is 2^255. Since mod is zero, the result should be zero." ], "data" : [ "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002003fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f", @@ -230,7 +231,8 @@ "0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000064", "0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000010100000000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030006", "0x00000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000", -"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000" +"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000", +"0x000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" ], "gasLimit" : [ "100000000" -- cgit