aboutsummaryrefslogtreecommitdiffstats
path: root/vm.cpp
diff options
context:
space:
mode:
authorChristoph Jentzsch <jentzsch.software@gmail.com>2014-09-20 08:05:04 +0800
committerChristoph Jentzsch <jentzsch.software@gmail.com>2014-09-20 08:05:04 +0800
commit9f04e1d1b702de57b330f4f95dbe339698d2d57b (patch)
tree0c91590df9fc2386240835e6fcce2cf55bd8bb5f /vm.cpp
parentf9a7ab94ae2003290153369e3128e6730c9e6eb5 (diff)
downloaddexon-solidity-9f04e1d1b702de57b330f4f95dbe339698d2d57b.tar.gz
dexon-solidity-9f04e1d1b702de57b330f4f95dbe339698d2d57b.tar.zst
dexon-solidity-9f04e1d1b702de57b330f4f95dbe339698d2d57b.zip
Added arithmetic test
Diffstat (limited to 'vm.cpp')
-rw-r--r--vm.cpp58
1 files changed, 47 insertions, 11 deletions
diff --git a/vm.cpp b/vm.cpp
index e177855c..5caba5cd 100644
--- a/vm.cpp
+++ b/vm.cpp
@@ -169,6 +169,15 @@ public:
a.push_back(toString(_v));
}
+ static string u256toHex(u256 const& _v)
+ {
+ std::ostringstream oss;
+ oss << std::hex << std::setfill('0') << std::setw(2) << _v;
+ string ret = "0x" + oss.str();
+ std::transform(ret.begin(), ret.end(), ret.begin(), ::tolower);
+ return ret;
+ }
+
mObject exportEnv()
{
mObject ret;
@@ -219,13 +228,13 @@ public:
if (li)
store[curKey] = curVal;
li = s.first;
- curKey = toString(li);
+ curKey = u256toHex(li);
curVal = mArray();
}
else
for (; li != s.first; ++li)
curVal.push_back(0);
- push(curVal, s.second);
+ curVal.push_back(u256toHex(s.second));
++li;
}
if (li)
@@ -476,15 +485,15 @@ BOOST_AUTO_TEST_CASE(vm_tests)
{
// Populate tests first:
// try
- {
- cnote << "Populating VM tests...";
- json_spirit::mValue v;
- string s = asString(contents("../../../cpp-ethereum/test/vmtests.json"));
- BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of 'vmtests.json' is empty.");
- json_spirit::read_string(s, v);
- dev::test::doTests(v, true);
- writeFile("../../../tests/vmtests.json", asBytes(json_spirit::write_string(v, true)));
- }
+// {
+// cnote << "Populating VM tests...";
+// json_spirit::mValue v;
+// string s = asString(contents("../../../cpp-ethereum/test/vmtests.json"));
+// BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of 'vmtests.json' is empty.");
+// json_spirit::read_string(s, v);
+// dev::test::doTests(v, true);
+// writeFile("../../../tests/vmtests.json", asBytes(json_spirit::write_string(v, true)));
+// }
/* catch (std::exception const& e)
{
BOOST_ERROR("Failed VM Test with Exception: " << e.what());
@@ -504,3 +513,30 @@ BOOST_AUTO_TEST_CASE(vm_tests)
BOOST_ERROR("Failed VM Test with Exception: " << e.what());
}
}
+
+BOOST_AUTO_TEST_CASE(vmArithmeticTest)
+{
+
+// cnote << "Populating VM tests...";
+// json_spirit::mValue v;
+// string s = asString(contents("../../../cpp-ethereum/test/vmArithmeticTestFiller.json"));
+// BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of 'vmtests.json' is empty.");
+// json_spirit::read_string(s, v);
+// dev::test::doTests(v, true);
+// writeFile("../../../tests/vmArithmeticTest.json", asBytes(json_spirit::write_string(v, true)));
+
+
+ try
+ {
+ cnote << "Testing VM arithmetic commands...";
+ json_spirit::mValue v;
+ string s = asString(contents("../../../tests/vmArithmeticTest.json"));
+ BOOST_REQUIRE_MESSAGE(s.length() > 0, "Contents of 'vmArithmeticTest.json' is empty. Have you cloned the 'tests' repo branch develop?");
+ json_spirit::read_string(s, v);
+ dev::test::doTests(v, false);
+ }
+ catch (std::exception const& e)
+ {
+ BOOST_ERROR("Failed VM arithmetic test with Exception: " << e.what());
+ }
+}