diff options
author | chriseth <chris@ethereum.org> | 2018-03-05 19:10:49 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-05 19:10:49 +0800 |
commit | 6dc137317fa8249a9c1b19ff6430840974393f90 (patch) | |
tree | 2263fd97b42da5673b1dcce24ab4419ce8dc67b9 /test/libsolidity/StandardCompiler.cpp | |
parent | e3c2ab39a125e68aea07ba9c8cacb0a55293bf0d (diff) | |
parent | 6ec4517929e8c0eca022f4771ba217db5d80beed (diff) | |
download | dexon-solidity-6dc137317fa8249a9c1b19ff6430840974393f90.tar dexon-solidity-6dc137317fa8249a9c1b19ff6430840974393f90.tar.gz dexon-solidity-6dc137317fa8249a9c1b19ff6430840974393f90.tar.bz2 dexon-solidity-6dc137317fa8249a9c1b19ff6430840974393f90.tar.lz dexon-solidity-6dc137317fa8249a9c1b19ff6430840974393f90.tar.xz dexon-solidity-6dc137317fa8249a9c1b19ff6430840974393f90.tar.zst dexon-solidity-6dc137317fa8249a9c1b19ff6430840974393f90.zip |
Merge pull request #3569 from ethereum/evmVersion
EVM version
Diffstat (limited to 'test/libsolidity/StandardCompiler.cpp')
-rw-r--r-- | test/libsolidity/StandardCompiler.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/libsolidity/StandardCompiler.cpp b/test/libsolidity/StandardCompiler.cpp index eb2773ba..4c8918be 100644 --- a/test/libsolidity/StandardCompiler.cpp +++ b/test/libsolidity/StandardCompiler.cpp @@ -724,6 +724,43 @@ BOOST_AUTO_TEST_CASE(library_linking) BOOST_CHECK(contract["evm"]["bytecode"]["linkReferences"]["library2.sol"]["L2"][0].isObject()); } +BOOST_AUTO_TEST_CASE(evm_version) +{ + auto inputForVersion = [](string const& _version) + { + return R"( + { + "language": "Solidity", + "sources": { "fileA": { "content": "contract A { }" } }, + "settings": { + )" + _version + R"( + "outputSelection": { + "fileA": { + "A": [ "metadata" ] + } + } + } + } + )"; + }; + Json::Value result; + result = compile(inputForVersion("\"evmVersion\": \"homestead\",")); + BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"homestead\"") != string::npos); + result = compile(inputForVersion("\"evmVersion\": \"tangerineWhistle\",")); + BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"tangerineWhistle\"") != string::npos); + result = compile(inputForVersion("\"evmVersion\": \"spuriousDragon\",")); + BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"spuriousDragon\"") != string::npos); + result = compile(inputForVersion("\"evmVersion\": \"byzantium\",")); + BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"byzantium\"") != string::npos); + // test default + result = compile(inputForVersion("")); + BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"byzantium\"") != string::npos); + // test invalid + result = compile(inputForVersion("\"evmVersion\": \"invalid\",")); + BOOST_CHECK(result["errors"][0]["message"].asString() == "Invalid EVM version requested."); +} + + BOOST_AUTO_TEST_SUITE_END() } |