Browse Source

Solidity: cryptographic ecrecover test

cl-refactor
winsvega 10 years ago
parent
commit
43f34d3577
  1. 12
      test/TestHelper.cpp
  2. 4
      test/TestHelper.h
  3. 8
      test/libethereum/StateTestsFiller/stSolidityTestFiller.json
  4. 9
      test/libethereum/state.cpp

12
test/TestHelper.cpp

@ -715,11 +715,10 @@ Options::Options()
vmtrace = true; vmtrace = true;
else if (arg == "--filltests") else if (arg == "--filltests")
fillTests = true; fillTests = true;
else if (arg.compare(0, 7, "--stats") == 0) else if (arg == "--stats" && i + 1 < argc)
{ {
stats = true; stats = true;
if (arg.size() > 7) statsOutFile = argv[i + 1];
statsOutFile = arg.substr(8); // skip '=' char
} }
else if (arg == "--performance") else if (arg == "--performance")
performance = true; performance = true;
@ -741,11 +740,10 @@ Options::Options()
inputLimits = true; inputLimits = true;
bigData = true; bigData = true;
} }
else if (arg.compare(0, 12, "--singletest") == 0) else if (arg == "--singletest" && i + 1 < argc)
{ {
singletest = true; singleTest = true;
if (arg.size() > 12) singleTestName = argv[i + 1];
singletestName = arg.substr(13); // skip '=' char
} }
} }
} }

4
test/TestHelper.h

@ -188,8 +188,8 @@ public:
/// Test selection /// Test selection
/// @{ /// @{
bool singletest = false; bool singleTest = false;
std::string singletestName; std::string singleTestName;
bool performance = false; bool performance = false;
bool quadratic = false; bool quadratic = false;
bool memory = false; bool memory = false;

8
test/libethereum/StateTestsFiller/stSolidityTestFiller.json

@ -125,10 +125,14 @@
"//" : " if (ripemd160('teststring') != 0xcd566972b5e50104011a92b59fa8e0b1234851ae) ", "//" : " if (ripemd160('teststring') != 0xcd566972b5e50104011a92b59fa8e0b1234851ae) ",
"//" : " return false; ", "//" : " return false; ",
"//" : " ", "//" : " ",
"//" : " //ecrecover ", "//" : " if (ecrecover(0x18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c, ",
"//" : " 28, 0x73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f, ",
"//" : " 0xeeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549) ",
"//" : " != 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b) ",
"//" : " return false; ",
"//" : " } ", "//" : " } ",
"//" : "} ", "//" : "} ",
"code" : "0x6000357c010000000000000000000000000000000000000000000000000000000090048063c04062261461003a578063e0a9fd281461004c57005b61004261005e565b8060005260206000f35b610054610099565b8060005260206000f35b6000610068610099565b600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff169050610096565b90565b60006001905080507f43c4b4524adb81e4e9a5c4648a98e9d320e3908ac5b6c889144b642cd08ae16d60010260407f74657374737472696e67000000000000000000000000000000000000000000008152600a016040900360402014156100ff57610108565b6000905061020e565b7f3c8727e019a42b444667a587b6001251becadabbb36bfed8087a92c18882d11160010260026020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a0160006000856161da5a03f161016b57005b50600051141561017a57610183565b6000905061020e565b73cd566972b5e50104011a92b59fa8e0b1234851ae6c010000000000000000000000000260036020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a0160006000856161da5a03f16101e657005b506000516c010000000000000000000000000214156102045761020d565b6000905061020e565b5b9056", "code" : "0x6000357c010000000000000000000000000000000000000000000000000000000090048063c04062261461003a578063e0a9fd281461004c57005b61004261005e565b8060005260206000f35b610054610099565b8060005260206000f35b6000610068610099565b600060006101000a81548160ff02191690830217905550600060009054906101000a900460ff169050610096565b90565b60006001905080507f43c4b4524adb81e4e9a5c4648a98e9d320e3908ac5b6c889144b642cd08ae16d60010260407f74657374737472696e67000000000000000000000000000000000000000000008152600a016040900360402014156100ff57610108565b600090506102ec565b7f3c8727e019a42b444667a587b6001251becadabbb36bfed8087a92c18882d11160010260026020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a0160006000856161da5a03f161016b57005b50600051141561017a57610183565b600090506102ec565b73cd566972b5e50104011a92b59fa8e0b1234851ae6c010000000000000000000000000260036020600060007f74657374737472696e67000000000000000000000000000000000000000000008152600a0160006000856161da5a03f16101e657005b506000516c010000000000000000000000000214156102045761020d565b600090506102ec565b73a94f5374fce5edbc8e2a8697c15331677e6ebf0b60016020600060007f18c547e4f7b0f325ad1e56f57e26c745b09a3e503d86e00e5255ff7f715d3d1c6001028152602001601c81526020017f73b1693892219d736caba55bdb67216e485557ea6b6af75f37096c9aa6a5a75f60010281526020017feeb940b1d03b21e36b0e47e79769f095fe2ab855bd91e3a38756b7d75a9c4549600102815260200160006000856161da5a03f16102bd57005b5060005173ffffffffffffffffffffffffffffffffffffffff1614156102e2576102eb565b600090506102ec565b5b9056",
"nonce" : "0", "nonce" : "0",
"storage" : { "storage" : {
} }

9
test/libethereum/state.cpp

@ -43,13 +43,14 @@ void doStateTests(json_spirit::mValue& v, bool _fillin)
{ {
for (auto& i: v.get_obj()) for (auto& i: v.get_obj())
{ {
if (test::Options::get().singletest == true) mObject& o = i.second.get_obj();
if (test::Options::get().singletestName != i.first) if (test::Options::get().singleTest && test::Options::get().singleTestName != i.first)
{
o.clear();
continue; continue;
}
std::cout << " " << i.first << "\n"; std::cout << " " << i.first << "\n";
mObject& o = i.second.get_obj();
BOOST_REQUIRE(o.count("env") > 0); BOOST_REQUIRE(o.count("env") > 0);
BOOST_REQUIRE(o.count("pre") > 0); BOOST_REQUIRE(o.count("pre") > 0);
BOOST_REQUIRE(o.count("transaction") > 0); BOOST_REQUIRE(o.count("transaction") > 0);

Loading…
Cancel
Save