Merge pull request #6570 from ethereum/fixMetaSettings

Move metadata settings into its own object.
This commit is contained in:
chriseth
2019-04-29 15:09:27 +02:00
committed by GitHub
3 changed files with 20 additions and 10 deletions
+13 -6
View File
@@ -186,22 +186,29 @@ BOOST_AUTO_TEST_CASE(metadata_useLiteralContent)
}
)";
auto check = [](char const* _src, bool _check)
auto check = [](char const* _src, bool _literal)
{
CompilerStack compilerStack;
compilerStack.setSources({{"", std::string(_src)}});
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
compilerStack.useMetadataLiteralSources(_check);
compilerStack.useMetadataLiteralSources(_literal);
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
string metadata_str = compilerStack.metadata("test");
Json::Value metadata;
jsonParse(metadata_str, metadata);
BOOST_CHECK(metadata.isMember("settings"));
BOOST_CHECK(metadata["settings"].isMember("useLiteralContent"));
BOOST_CHECK(_check == metadata["settings"]["useLiteralContent"].asBool());
BOOST_CHECK(dev::test::isValidMetadata(metadata_str));
BOOST_CHECK(metadata.isMember("settings"));
if (_literal)
{
BOOST_CHECK(metadata["settings"].isMember("metadata"));
BOOST_CHECK(metadata["settings"]["metadata"].isMember("useLiteralContent"));
BOOST_CHECK(metadata["settings"]["metadata"]["useLiteralContent"].asBool());
}
else
{
BOOST_CHECK(!metadata["settings"].isMember("metadata"));
}
};
check(sourceCode, true);