|
|
@ -128,4 +128,43 @@ BOOST_AUTO_TEST_CASE(stPreCompiledContracts) |
|
|
|
dev::test::executeTests("stPreCompiledContracts", "/StateTests", dev::test::doStateTests); |
|
|
|
} |
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(userDefinedFileState) |
|
|
|
{ |
|
|
|
for (int i = 1; i < boost::unit_test::framework::master_test_suite().argc; ++i) |
|
|
|
{ |
|
|
|
string arg = boost::unit_test::framework::master_test_suite().argv[i]; |
|
|
|
if (arg == "--statetest") |
|
|
|
{ |
|
|
|
if (i + 1 >= boost::unit_test::framework::master_test_suite().argc) |
|
|
|
{ |
|
|
|
cnote << "Missing filename\nUsage: testeth --statetest <filename>\n"; |
|
|
|
return; |
|
|
|
} |
|
|
|
string filename = boost::unit_test::framework::master_test_suite().argv[i+1]; |
|
|
|
int currentVerbosity = g_logVerbosity; |
|
|
|
g_logVerbosity = 12; |
|
|
|
try |
|
|
|
{ |
|
|
|
cnote << "Testing VM..." << "user defined test"; |
|
|
|
json_spirit::mValue v; |
|
|
|
string s = asString(contents(filename)); |
|
|
|
BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + filename + " is empty. "); |
|
|
|
json_spirit::read_string(s, v); |
|
|
|
dev::test::doStateTests(v, false); |
|
|
|
} |
|
|
|
catch (Exception const& _e) |
|
|
|
{ |
|
|
|
BOOST_ERROR("Failed state test with Exception: " << diagnostic_information(_e)); |
|
|
|
} |
|
|
|
catch (std::exception const& _e) |
|
|
|
{ |
|
|
|
BOOST_ERROR("Failed state test with Exception: " << _e.what()); |
|
|
|
} |
|
|
|
g_logVerbosity = currentVerbosity; |
|
|
|
} |
|
|
|
else |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
BOOST_AUTO_TEST_SUITE_END() |
|
|
|