diff options
author | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-03-12 18:04:18 +0800 |
---|---|---|
committer | Marek Kotewicz <marek.kotewicz@gmail.com> | 2015-03-12 18:04:18 +0800 |
commit | a4800d8420bf4b8c60bdfa2ccf074b24f1468949 (patch) | |
tree | 86926a86bc88dabb85d031a4c3ce0d6d3d62e5d2 /Assembly.cpp | |
parent | 0d1fc88c94d322b5004f0bd0549b17bf3bd0072f (diff) | |
parent | 7a769c4a00bdfeca9073be0c5083587c4438cd05 (diff) | |
download | dexon-solidity-a4800d8420bf4b8c60bdfa2ccf074b24f1468949.tar dexon-solidity-a4800d8420bf4b8c60bdfa2ccf074b24f1468949.tar.gz dexon-solidity-a4800d8420bf4b8c60bdfa2ccf074b24f1468949.tar.bz2 dexon-solidity-a4800d8420bf4b8c60bdfa2ccf074b24f1468949.tar.lz dexon-solidity-a4800d8420bf4b8c60bdfa2ccf074b24f1468949.tar.xz dexon-solidity-a4800d8420bf4b8c60bdfa2ccf074b24f1468949.tar.zst dexon-solidity-a4800d8420bf4b8c60bdfa2ccf074b24f1468949.zip |
Merge branch 'develop' into new_jsonrpc
Conflicts:
libweb3jsonrpc/WebThreeStubServerBase.cpp
Diffstat (limited to 'Assembly.cpp')
-rw-r--r-- | Assembly.cpp | 54 |
1 files changed, 23 insertions, 31 deletions
diff --git a/Assembly.cpp b/Assembly.cpp index 3869919e..fbc8e47b 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); } |