aboutsummaryrefslogtreecommitdiffstats
path: root/vm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vm.cpp')
-rw-r--r--vm.cpp38
1 files changed, 32 insertions, 6 deletions
diff --git a/vm.cpp b/vm.cpp
index fe486304..40a0a862 100644
--- a/vm.cpp
+++ b/vm.cpp
@@ -20,9 +20,8 @@
* vm test functions.
*/
-#include "vm.h"
-#include <libdevcore/CommonIO.h>
#include <boost/filesystem/path.hpp>
+#include "vm.h"
//#define FILL_TESTS
@@ -131,7 +130,7 @@ bool FakeExtVM::call(Address _receiveAddress, u256 _value, bytesConstRef _data,
m_ms.internal.resize(m_ms.internal.size() + 1);
- auto ret = m_s.call(_receiveAddress,_codeAddressOverride ? _codeAddressOverride : _receiveAddress, _myAddressOverride ? _myAddressOverride : myAddress, _value, gasPrice, _data, _gas, _out, origin, &sub, &(m_ms.internal.back()), OnOpFunc(), 1);
+ auto ret = m_s.call(_receiveAddress,_codeAddressOverride ? _codeAddressOverride : _receiveAddress, _myAddressOverride ? _myAddressOverride : myAddress, _value, gasPrice, _data, _gas, _out, origin, &sub, &(m_ms.internal.back()), simpleTrace<ExtVM>(), 1);
if (!m_ms.internal.back().from)
m_ms.internal.pop_back();
@@ -487,8 +486,6 @@ h160 FakeState::createNewAddress(Address _newAddress, Address _sender, u256 _end
return _newAddress;
}
-
-
namespace dev { namespace test {
void doTests(json_spirit::mValue& v, bool _fillin)
@@ -520,7 +517,7 @@ void doTests(json_spirit::mValue& v, bool _fillin)
VM vm(fev.gas);
try
{
- output = vm.go(fev).toVector();
+ output = vm.go(fev, fev.simpleTrace<FakeExtVM>()).toVector();
}
catch (Exception const& _e)
{
@@ -756,3 +753,32 @@ BOOST_AUTO_TEST_CASE(vmSystemOperationsTest)
{
dev::test::executeTests("vmSystemOperationsTest");
}
+
+BOOST_AUTO_TEST_CASE(userDefinedFile)
+{
+
+ if (boost::unit_test::framework::master_test_suite().argc == 2)
+ {
+ string filename = boost::unit_test::framework::master_test_suite().argv[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::doTests(v, false);
+ }
+ catch (Exception const& _e)
+ {
+ BOOST_ERROR("Failed VM Test with Exception: " << diagnostic_information(_e));
+ }
+ catch (std::exception const& _e)
+ {
+ BOOST_ERROR("Failed VM Test with Exception: " << _e.what());
+ }
+ g_logVerbosity = currentVerbosity;
+ }
+}