mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Adapt tests directory to C++ namespace changes.
This commit is contained in:
committed by
Daniel Kirchner
parent
6b23412fae
commit
ed45b000d1
@@ -29,20 +29,16 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace dev
|
||||
{
|
||||
namespace solidity
|
||||
{
|
||||
namespace test
|
||||
namespace solidity::frontend::test
|
||||
{
|
||||
|
||||
namespace
|
||||
{
|
||||
map<string, string> requireParsedCBORMetadata(bytes const& _bytecode)
|
||||
{
|
||||
bytes cborMetadata = dev::test::onlyMetadata(_bytecode);
|
||||
bytes cborMetadata = solidity::test::onlyMetadata(_bytecode);
|
||||
BOOST_REQUIRE(!cborMetadata.empty());
|
||||
std::optional<map<string, string>> tmp = dev::test::parseCBORMetadata(cborMetadata);
|
||||
std::optional<map<string, string>> tmp = solidity::test::parseCBORMetadata(cborMetadata);
|
||||
BOOST_REQUIRE(tmp);
|
||||
return *tmp;
|
||||
}
|
||||
@@ -70,13 +66,13 @@ BOOST_AUTO_TEST_CASE(metadata_stamp)
|
||||
CompilerStack compilerStack;
|
||||
compilerStack.overwriteReleaseFlag(release);
|
||||
compilerStack.setSources({{"", std::string(sourceCode)}});
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
compilerStack.setEVMVersion(solidity::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(solidity::test::Options::get().optimize);
|
||||
compilerStack.setMetadataHash(metadataHash);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
bytes const& bytecode = compilerStack.runtimeObject("test").bytecode;
|
||||
std::string const& metadata = compilerStack.metadata("test");
|
||||
BOOST_CHECK(dev::test::isValidMetadata(metadata));
|
||||
BOOST_CHECK(solidity::test::isValidMetadata(metadata));
|
||||
|
||||
auto const cborMetadata = requireParsedCBORMetadata(bytecode);
|
||||
if (metadataHash == CompilerStack::MetadataHash::None)
|
||||
@@ -87,25 +83,25 @@ BOOST_AUTO_TEST_CASE(metadata_stamp)
|
||||
string hashMethod;
|
||||
if (metadataHash == CompilerStack::MetadataHash::IPFS)
|
||||
{
|
||||
hash = dev::ipfsHash(metadata);
|
||||
hash = util::ipfsHash(metadata);
|
||||
BOOST_REQUIRE(hash.size() == 34);
|
||||
hashMethod = "ipfs";
|
||||
}
|
||||
else
|
||||
{
|
||||
hash = dev::bzzr1Hash(metadata).asBytes();
|
||||
hash = util::bzzr1Hash(metadata).asBytes();
|
||||
BOOST_REQUIRE(hash.size() == 32);
|
||||
hashMethod = "bzzr1";
|
||||
}
|
||||
|
||||
BOOST_CHECK(cborMetadata.size() == 2);
|
||||
BOOST_CHECK(cborMetadata.count(hashMethod) == 1);
|
||||
BOOST_CHECK(cborMetadata.at(hashMethod) == toHex(hash));
|
||||
BOOST_CHECK(cborMetadata.at(hashMethod) == util::toHex(hash));
|
||||
}
|
||||
|
||||
BOOST_CHECK(cborMetadata.count("solc") == 1);
|
||||
if (release)
|
||||
BOOST_CHECK(cborMetadata.at("solc") == toHex(VersionCompactBytes));
|
||||
BOOST_CHECK(cborMetadata.at("solc") == util::toHex(VersionCompactBytes));
|
||||
else
|
||||
BOOST_CHECK(cborMetadata.at("solc") == VersionStringStrict);
|
||||
}
|
||||
@@ -131,13 +127,13 @@ BOOST_AUTO_TEST_CASE(metadata_stamp_experimental)
|
||||
CompilerStack compilerStack;
|
||||
compilerStack.overwriteReleaseFlag(release);
|
||||
compilerStack.setSources({{"", std::string(sourceCode)}});
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
compilerStack.setEVMVersion(solidity::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(solidity::test::Options::get().optimize);
|
||||
compilerStack.setMetadataHash(metadataHash);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
bytes const& bytecode = compilerStack.runtimeObject("test").bytecode;
|
||||
std::string const& metadata = compilerStack.metadata("test");
|
||||
BOOST_CHECK(dev::test::isValidMetadata(metadata));
|
||||
BOOST_CHECK(solidity::test::isValidMetadata(metadata));
|
||||
|
||||
auto const cborMetadata = requireParsedCBORMetadata(bytecode);
|
||||
if (metadataHash == CompilerStack::MetadataHash::None)
|
||||
@@ -148,25 +144,25 @@ BOOST_AUTO_TEST_CASE(metadata_stamp_experimental)
|
||||
string hashMethod;
|
||||
if (metadataHash == CompilerStack::MetadataHash::IPFS)
|
||||
{
|
||||
hash = dev::ipfsHash(metadata);
|
||||
hash = util::ipfsHash(metadata);
|
||||
BOOST_REQUIRE(hash.size() == 34);
|
||||
hashMethod = "ipfs";
|
||||
}
|
||||
else
|
||||
{
|
||||
hash = dev::bzzr1Hash(metadata).asBytes();
|
||||
hash = util::bzzr1Hash(metadata).asBytes();
|
||||
BOOST_REQUIRE(hash.size() == 32);
|
||||
hashMethod = "bzzr1";
|
||||
}
|
||||
|
||||
BOOST_CHECK(cborMetadata.size() == 3);
|
||||
BOOST_CHECK(cborMetadata.count(hashMethod) == 1);
|
||||
BOOST_CHECK(cborMetadata.at(hashMethod) == toHex(hash));
|
||||
BOOST_CHECK(cborMetadata.at(hashMethod) == util::toHex(hash));
|
||||
}
|
||||
|
||||
BOOST_CHECK(cborMetadata.count("solc") == 1);
|
||||
if (release)
|
||||
BOOST_CHECK(cborMetadata.at("solc") == toHex(VersionCompactBytes));
|
||||
BOOST_CHECK(cborMetadata.at("solc") == util::toHex(VersionCompactBytes));
|
||||
else
|
||||
BOOST_CHECK(cborMetadata.at("solc") == VersionStringStrict);
|
||||
BOOST_CHECK(cborMetadata.count("experimental") == 1);
|
||||
@@ -193,14 +189,14 @@ BOOST_AUTO_TEST_CASE(metadata_relevant_sources)
|
||||
{"A", std::string(sourceCodeA)},
|
||||
{"B", std::string(sourceCodeB)},
|
||||
});
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
compilerStack.setEVMVersion(solidity::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(solidity::test::Options::get().optimize);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
|
||||
std::string const& serialisedMetadata = compilerStack.metadata("A");
|
||||
BOOST_CHECK(dev::test::isValidMetadata(serialisedMetadata));
|
||||
BOOST_CHECK(solidity::test::isValidMetadata(serialisedMetadata));
|
||||
Json::Value metadata;
|
||||
BOOST_REQUIRE(jsonParseStrict(serialisedMetadata, metadata));
|
||||
BOOST_REQUIRE(util::jsonParseStrict(serialisedMetadata, metadata));
|
||||
|
||||
BOOST_CHECK_EQUAL(metadata["sources"].size(), 1);
|
||||
BOOST_CHECK(metadata["sources"].isMember("A"));
|
||||
@@ -234,14 +230,14 @@ BOOST_AUTO_TEST_CASE(metadata_relevant_sources_imports)
|
||||
{"B", std::string(sourceCodeB)},
|
||||
{"C", std::string(sourceCodeC)}
|
||||
});
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
compilerStack.setEVMVersion(solidity::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(solidity::test::Options::get().optimize);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
|
||||
std::string const& serialisedMetadata = compilerStack.metadata("C");
|
||||
BOOST_CHECK(dev::test::isValidMetadata(serialisedMetadata));
|
||||
BOOST_CHECK(solidity::test::isValidMetadata(serialisedMetadata));
|
||||
Json::Value metadata;
|
||||
BOOST_REQUIRE(jsonParseStrict(serialisedMetadata, metadata));
|
||||
BOOST_REQUIRE(util::jsonParseStrict(serialisedMetadata, metadata));
|
||||
|
||||
BOOST_CHECK_EQUAL(metadata["sources"].size(), 3);
|
||||
BOOST_CHECK(metadata["sources"].isMember("A"));
|
||||
@@ -262,14 +258,14 @@ BOOST_AUTO_TEST_CASE(metadata_useLiteralContent)
|
||||
{
|
||||
CompilerStack compilerStack;
|
||||
compilerStack.setSources({{"", std::string(_src)}});
|
||||
compilerStack.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
compilerStack.setEVMVersion(solidity::test::Options::get().evmVersion());
|
||||
compilerStack.setOptimiserSettings(solidity::test::Options::get().optimize);
|
||||
compilerStack.useMetadataLiteralSources(_literal);
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
string metadata_str = compilerStack.metadata("test");
|
||||
Json::Value metadata;
|
||||
jsonParseStrict(metadata_str, metadata);
|
||||
BOOST_CHECK(dev::test::isValidMetadata(metadata_str));
|
||||
util::jsonParseStrict(metadata_str, metadata);
|
||||
BOOST_CHECK(solidity::test::isValidMetadata(metadata_str));
|
||||
BOOST_CHECK(metadata.isMember("settings"));
|
||||
BOOST_CHECK(metadata["settings"].isMember("metadata"));
|
||||
BOOST_CHECK(metadata["settings"]["metadata"].isMember("bytecodeHash"));
|
||||
@@ -297,9 +293,9 @@ BOOST_AUTO_TEST_CASE(metadata_revert_strings)
|
||||
BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed");
|
||||
|
||||
std::string const& serialisedMetadata = compilerStack.metadata("A");
|
||||
BOOST_CHECK(dev::test::isValidMetadata(serialisedMetadata));
|
||||
BOOST_CHECK(solidity::test::isValidMetadata(serialisedMetadata));
|
||||
Json::Value metadata;
|
||||
BOOST_REQUIRE(jsonParseStrict(serialisedMetadata, metadata));
|
||||
BOOST_REQUIRE(util::jsonParseStrict(serialisedMetadata, metadata));
|
||||
|
||||
BOOST_CHECK_EQUAL(metadata["settings"]["debug"]["revertStrings"], "strip");
|
||||
}
|
||||
@@ -307,5 +303,3 @@ BOOST_AUTO_TEST_CASE(metadata_revert_strings)
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user