diff options
author | chriseth <c@ethdev.com> | 2015-03-11 22:59:02 +0800 |
---|---|---|
committer | chriseth <c@ethdev.com> | 2015-03-11 22:59:02 +0800 |
commit | a969203947f72a68bc30f4c8e4b4d2db148ee5bd (patch) | |
tree | 6c893e84f68ed5770f96a09fa99c4cf80c56c551 | |
parent | 9db703b5b1c0c5785d2759242260620fb0345b03 (diff) | |
download | dexon-solidity-a969203947f72a68bc30f4c8e4b4d2db148ee5bd.tar dexon-solidity-a969203947f72a68bc30f4c8e4b4d2db148ee5bd.tar.gz dexon-solidity-a969203947f72a68bc30f4c8e4b4d2db148ee5bd.tar.bz2 dexon-solidity-a969203947f72a68bc30f4c8e4b4d2db148ee5bd.tar.lz dexon-solidity-a969203947f72a68bc30f4c8e4b4d2db148ee5bd.tar.xz dexon-solidity-a969203947f72a68bc30f4c8e4b4d2db148ee5bd.tar.zst dexon-solidity-a969203947f72a68bc30f4c8e4b4d2db148ee5bd.zip |
Fixed assembly tests.
-rw-r--r-- | Assembly.cpp | 54 |
1 files changed, 23 insertions, 31 deletions
diff --git a/Assembly.cpp b/Assembly.cpp index 3869919e..eb76f118 100644 --- a/Assembly.cpp +++ b/Assembly.cpp @@ -74,17 +74,19 @@ eth::AssemblyItems compileContract(const string& _sourceCode) return AssemblyItems(); } -void checkAssemblyLocations(AssemblyItems const& _items, std::vector<SourceLocation> _locations) +void checkAssemblyLocations(AssemblyItems const& _items, vector<SourceLocation> const& _locations) { - size_t i = 0; BOOST_CHECK_EQUAL(_items.size(), _locations.size()); - for (auto const& it: _items) + for (size_t i = 0; i < min(_items.size(), _locations.size()); ++i) { - BOOST_CHECK_MESSAGE(it.getLocation() == _locations[i], - std::string("Location mismatch for assembly item ") + std::to_string(i)); - ++i; + BOOST_CHECK_MESSAGE( + _items[i].getLocation() == _locations[i], + "Location mismatch for assembly item " + to_string(i) + ". Found: " + + to_string(_items[i].getLocation().start) + "-" + + to_string(_items[i].getLocation().end) + ", expected: " + + to_string(_locations[i].start) + "-" + + to_string(_locations[i].end)); } - } } // end anonymous namespace @@ -93,31 +95,21 @@ BOOST_AUTO_TEST_SUITE(Assembly) BOOST_AUTO_TEST_CASE(location_test) { - char const* sourceCode = "contract test {\n" - " function f() returns (uint256 a)\n" - " {\n" - " return 16;\n" - " }\n" - "}\n"; - std::shared_ptr<std::string const> n = make_shared<std::string>("source"); + char const* sourceCode = R"( + contract test { + function f() returns (uint256 a) { + return 16; + } + } + )"; + shared_ptr<string const> n = make_shared<string>("source"); AssemblyItems items = compileContract(sourceCode); - std::vector<SourceLocation> locations { - SourceLocation(0, 77, n), SourceLocation(0, 77, n), - SourceLocation(0, 77, n), SourceLocation(0, 77, n), - SourceLocation(0, 77, n), SourceLocation(0, 77, n), - SourceLocation(0, 77, n), SourceLocation(0, 77, n), - SourceLocation(), SourceLocation(), - SourceLocation(0, 77, n), SourceLocation(0, 77, n), - SourceLocation(), SourceLocation(), SourceLocation(), - SourceLocation(0, 77, n), SourceLocation(0, 77, n), - SourceLocation(0, 77, n), SourceLocation(0, 77, n), - SourceLocation(0, 77, n), SourceLocation(0, 77, n), - SourceLocation(0, 77, n), - SourceLocation(18, 75, n), SourceLocation(40, 49, n), - SourceLocation(61, 70, n), SourceLocation(61, 70, n), SourceLocation(61, 70, n), - SourceLocation(), SourceLocation(), - SourceLocation(61, 70, n), SourceLocation(61, 70, n), SourceLocation(61, 70, n) - }; + vector<SourceLocation> locations = + vector<SourceLocation>(11, SourceLocation(2, 75, n)) + + vector<SourceLocation>(12, SourceLocation(20, 72, n)) + + vector<SourceLocation>{SourceLocation(42, 51, n), SourceLocation(65, 67, n)} + + vector<SourceLocation>(4, SourceLocation(58, 67, n)) + + vector<SourceLocation>(3, SourceLocation(20, 72, n)); checkAssemblyLocations(items, locations); } |