diff options
author | CJentzsch <jentzsch.software@gmail.com> | 2015-03-12 21:34:46 +0800 |
---|---|---|
committer | CJentzsch <jentzsch.software@gmail.com> | 2015-03-12 21:34:46 +0800 |
commit | 67fae64c9f4b719007ae4b256bee0dc19b5020db (patch) | |
tree | 06890e05b589d64c02e985743f859601ea1cd0d6 /Assembly.cpp | |
parent | c93c1901d0e3ef73a936d04ea8100e9ab7d56ca9 (diff) | |
parent | 8371e8934e0b55400db0dce5e28c3e3ae5a676f7 (diff) | |
download | dexon-solidity-67fae64c9f4b719007ae4b256bee0dc19b5020db.tar dexon-solidity-67fae64c9f4b719007ae4b256bee0dc19b5020db.tar.gz dexon-solidity-67fae64c9f4b719007ae4b256bee0dc19b5020db.tar.bz2 dexon-solidity-67fae64c9f4b719007ae4b256bee0dc19b5020db.tar.lz dexon-solidity-67fae64c9f4b719007ae4b256bee0dc19b5020db.tar.xz dexon-solidity-67fae64c9f4b719007ae4b256bee0dc19b5020db.tar.zst dexon-solidity-67fae64c9f4b719007ae4b256bee0dc19b5020db.zip |
Merge remote-tracking branch 'upstream/develop' into addTests
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); } |