aboutsummaryrefslogtreecommitdiffstats
path: root/TestHelper.cpp
diff options
context:
space:
mode:
authorPaweł Bylica <pawel.bylica@imapp.pl>2015-05-08 17:00:17 +0800
committerPaweł Bylica <pawel.bylica@imapp.pl>2015-05-08 17:00:53 +0800
commitf7109717ed6ffbde00cbd9090cdb6e8f00c01359 (patch)
tree980265c526579d1c71c860c7292a5d188567f05c /TestHelper.cpp
parent6cce9710e5f61078b20c7014d62dbcde3a8ad2de (diff)
downloaddexon-solidity-f7109717ed6ffbde00cbd9090cdb6e8f00c01359.tar.gz
dexon-solidity-f7109717ed6ffbde00cbd9090cdb6e8f00c01359.tar.zst
dexon-solidity-f7109717ed6ffbde00cbd9090cdb6e8f00c01359.zip
testeth: fix --singletest option
Diffstat (limited to 'TestHelper.cpp')
-rw-r--r--TestHelper.cpp89
1 files changed, 41 insertions, 48 deletions
diff --git a/TestHelper.cpp b/TestHelper.cpp
index 144a1a28..e0aad310 100644
--- a/TestHelper.cpp
+++ b/TestHelper.cpp
@@ -549,58 +549,50 @@ void checkCallCreates(eth::Transactions _resultCallCreates, eth::Transactions _e
}
}
-void userDefinedTest(string testTypeFlag, std::function<void(json_spirit::mValue&, bool)> doTests)
+void userDefinedTest(std::function<void(json_spirit::mValue&, bool)> doTests)
{
- Options::get(); // parse command line options, e.g. to enable JIT
+ if (!Options::get().singleTest)
+ {
+ cnote << "Missing user test specification\nUsage: testeth --singletest <filename> <testname>\n";
+ return;
+ }
- for (int i = 1; i < boost::unit_test::framework::master_test_suite().argc; ++i)
+ auto& filename = Options::get().singleTestFile;
+ auto& testname = Options::get().singleTestName;
+ int currentVerbosity = g_logVerbosity;
+ g_logVerbosity = 12;
+ try
{
- string arg = boost::unit_test::framework::master_test_suite().argv[i];
- if (arg == testTypeFlag)
- {
- if (boost::unit_test::framework::master_test_suite().argc <= i + 2)
- {
- cnote << "Missing filename\nUsage: testeth " << testTypeFlag << " <filename> <testname>\n";
- return;
- }
- 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;
- g_logVerbosity = 12;
- try
- {
- cnote << "Testing user defined test: " << filename;
- 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);
- 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;
+ cnote << "Testing user defined test: " << filename;
+ 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);
+ json_spirit::mObject oSingleTest;
- json_spirit::mValue v_singleTest(oSingleTest);
- doTests(v_singleTest, false);
- }
- catch (Exception const& _e)
- {
- BOOST_ERROR("Failed Test with Exception: " << diagnostic_information(_e));
- g_logVerbosity = currentVerbosity;
- }
- catch (std::exception const& _e)
- {
- BOOST_ERROR("Failed Test with Exception: " << _e.what());
- g_logVerbosity = currentVerbosity;
- }
- g_logVerbosity = currentVerbosity;
+ 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)
+ {
+ BOOST_ERROR("Failed Test with Exception: " << diagnostic_information(_e));
+ g_logVerbosity = currentVerbosity;
+ }
+ catch (std::exception const& _e)
+ {
+ BOOST_ERROR("Failed Test with Exception: " << _e.what());
+ g_logVerbosity = currentVerbosity;
}
+ g_logVerbosity = currentVerbosity;
}
void executeTests(const string& _name, const string& _testPathAppendix, const boost::filesystem::path _pathToFiller, std::function<void(json_spirit::mValue&, bool)> doTests)
@@ -740,10 +732,11 @@ Options::Options()
inputLimits = true;
bigData = true;
}
- else if (arg == "--singletest" && i + 1 < argc)
+ else if (arg == "--singletest" && i + 2 < argc)
{
singleTest = true;
- singleTestName = argv[i + 1];
+ singleTestFile = argv[i + 1];
+ singleTestName = argv[i + 2];
}
}
}