aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Jentzsch <jentzsch.software@gmail.com>2014-11-07 20:29:13 +0800
committerChristoph Jentzsch <jentzsch.software@gmail.com>2014-11-07 20:29:13 +0800
commitab3a1ec6ef5f7d37baad864b3235c37f7e518144 (patch)
tree104d26dc869e205801255b6d0eb60a230310ce13
parente62f089a02858a318ef37a487a20f7dc0e083f67 (diff)
downloaddexon-solidity-ab3a1ec6ef5f7d37baad864b3235c37f7e518144.tar.gz
dexon-solidity-ab3a1ec6ef5f7d37baad864b3235c37f7e518144.tar.zst
dexon-solidity-ab3a1ec6ef5f7d37baad864b3235c37f7e518144.zip
Added random test execution
-rw-r--r--state.cpp8
-rw-r--r--vm.cpp36
2 files changed, 36 insertions, 8 deletions
diff --git a/state.cpp b/state.cpp
index d090aec9..57ddc735 100644
--- a/state.cpp
+++ b/state.cpp
@@ -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()
diff --git a/vm.cpp b/vm.cpp
index a093966d..ccf78802 100644
--- a/vm.cpp
+++ b/vm.cpp
@@ -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)