diff options
author | Christoph Jentzsch <jentzsch.software@gmail.com> | 2014-11-07 20:29:13 +0800 |
---|---|---|
committer | Christoph Jentzsch <jentzsch.software@gmail.com> | 2014-11-07 20:29:13 +0800 |
commit | ab3a1ec6ef5f7d37baad864b3235c37f7e518144 (patch) | |
tree | 104d26dc869e205801255b6d0eb60a230310ce13 | |
parent | e62f089a02858a318ef37a487a20f7dc0e083f67 (diff) | |
download | dexon-solidity-ab3a1ec6ef5f7d37baad864b3235c37f7e518144.tar.gz dexon-solidity-ab3a1ec6ef5f7d37baad864b3235c37f7e518144.tar.zst dexon-solidity-ab3a1ec6ef5f7d37baad864b3235c37f7e518144.zip |
Added random test execution
-rw-r--r-- | state.cpp | 8 | ||||
-rw-r--r-- | vm.cpp | 36 |
2 files changed, 36 insertions, 8 deletions
@@ -128,12 +128,4 @@ BOOST_AUTO_TEST_CASE(stPreCompiledContracts) dev::test::executeTests("stPreCompiledContracts", "/StateTests", dev::test::doStateTests); } -BOOST_AUTO_TEST_CASE(tmp) -{ - int currentVerbosity = g_logVerbosity; - g_logVerbosity = 12; - dev::test::executeTests("tmp", "/StateTests", dev::test::doStateTests); - g_logVerbosity = currentVerbosity; -} - BOOST_AUTO_TEST_SUITE_END() @@ -20,6 +20,7 @@ * vm test functions. */ +#include <boost/filesystem.hpp> #include "vm.h" using namespace std; @@ -423,6 +424,41 @@ BOOST_AUTO_TEST_CASE(vmPushDupSwapTest) dev::test::executeTests("vmPushDupSwapTest", "/VMTests", dev::test::doVMTests); } +BOOST_AUTO_TEST_CASE(vmRandom) +{ + string testPath = getTestPath(); + testPath += "/VMTests/RandomTests"; + + vector<boost::filesystem::path> testFiles; + boost::filesystem::directory_iterator iterator(testPath); + for(; iterator != boost::filesystem::directory_iterator(); ++iterator) + if (boost::filesystem::is_regular_file(iterator->path()) && iterator->path().extension() == ".json") + testFiles.push_back(iterator->path()); + + for (auto& path: testFiles) + { + try + { + cnote << "Testing ..." << path.filename(); + json_spirit::mValue v; + string testpath(path.c_str()); + string s = asString(dev::contents(testpath)); + + BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of " + testpath + " is empty. Have you cloned the 'tests' repo branch develop and set ETHEREUM_TEST_PATH to its path?"); + json_spirit::read_string(s, v); + doVMTests(v, false); + } + catch (Exception const& _e) + { + BOOST_ERROR("Failed test with Exception: " << diagnostic_information(_e)); + } + catch (std::exception const& _e) + { + BOOST_ERROR("Failed test with Exception: " << _e.what()); + } + } +} + BOOST_AUTO_TEST_CASE(userDefinedFile) { if (boost::unit_test::framework::master_test_suite().argc == 2) |