Merge pull request #533 from CJentzsch/stateTests

Specify user defined test
This commit is contained in:
Gav Wood 2014-11-24 17:03:43 +01:00
commit d2ea1d7cc6

View File

@ -322,12 +322,13 @@ void userDefinedTest(string testTypeFlag, std::function<void(json_spirit::mValue
string arg = boost::unit_test::framework::master_test_suite().argv[i]; string arg = boost::unit_test::framework::master_test_suite().argv[i];
if (arg == testTypeFlag) if (arg == testTypeFlag)
{ {
if (i + 1 >= boost::unit_test::framework::master_test_suite().argc) if (boost::unit_test::framework::master_test_suite().argc <= i + 2)
{ {
cnote << "Missing filename\nUsage: testeth " << testTypeFlag << " <filename>\n"; cnote << "Missing filename\nUsage: testeth " << testTypeFlag << " <filename> <testname>\n";
return; return;
} }
string filename = boost::unit_test::framework::master_test_suite().argv[i + 1]; string filename = boost::unit_test::framework::master_test_suite().argv[i + 1];
string testname = boost::unit_test::framework::master_test_suite().argv[i + 2];
int currentVerbosity = g_logVerbosity; int currentVerbosity = g_logVerbosity;
g_logVerbosity = 12; g_logVerbosity = 12;
try try
@ -337,7 +338,19 @@ void userDefinedTest(string testTypeFlag, std::function<void(json_spirit::mValue
string s = asString(contents(filename)); string s = asString(contents(filename));
BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + filename + " is empty. "); BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + filename + " is empty. ");
json_spirit::read_string(s, v); json_spirit::read_string(s, v);
doTests(v, false); json_spirit::mObject oSingleTest;
json_spirit::mObject::const_iterator pos = v.get_obj().find(testname);
if (pos == v.get_obj().end())
{
cnote << "Could not find test: " << testname << " in " << filename << "\n";
return;
}
else
oSingleTest[pos->first] = pos->second;
json_spirit::mValue v_singleTest(oSingleTest);
doTests(v_singleTest, false);
} }
catch (Exception const& _e) catch (Exception const& _e)
{ {