diff options
author | Christoph Jentzsch <jentzsch.software@gmail.com> | 2014-09-20 08:05:04 +0800 |
---|---|---|
committer | Christoph Jentzsch <jentzsch.software@gmail.com> | 2014-09-20 08:05:04 +0800 |
commit | 9f04e1d1b702de57b330f4f95dbe339698d2d57b (patch) | |
tree | 0c91590df9fc2386240835e6fcce2cf55bd8bb5f /vm.cpp | |
parent | f9a7ab94ae2003290153369e3128e6730c9e6eb5 (diff) | |
download | dexon-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.cpp | 58 |
1 files changed, 47 insertions, 11 deletions
@@ -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()); + } +} |