mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Implement CompilerStack.lastContractName()
This commit is contained in:
@@ -51,7 +51,7 @@ public:
|
||||
m_compiler.setOptimiserSettings(dev::test::Options::get().optimize);
|
||||
BOOST_REQUIRE_MESSAGE(m_compiler.compile(), "Compiling contract failed");
|
||||
|
||||
AssemblyItems const* items = m_compiler.runtimeAssemblyItems("");
|
||||
AssemblyItems const* items = m_compiler.runtimeAssemblyItems(m_compiler.lastContractName());
|
||||
ASTNode const& sourceUnit = m_compiler.ast("");
|
||||
BOOST_REQUIRE(items != nullptr);
|
||||
m_gasCosts = GasEstimator::breakToStatementLevel(
|
||||
@@ -64,13 +64,13 @@ public:
|
||||
{
|
||||
compileAndRun(_sourceCode);
|
||||
auto state = make_shared<KnownState>();
|
||||
PathGasMeter meter(*m_compiler.assemblyItems(""));
|
||||
PathGasMeter meter(*m_compiler.assemblyItems(m_compiler.lastContractName()));
|
||||
GasMeter::GasConsumption gas = meter.estimateMax(0, state);
|
||||
u256 bytecodeSize(m_compiler.runtimeObject("").bytecode.size());
|
||||
u256 bytecodeSize(m_compiler.runtimeObject(m_compiler.lastContractName()).bytecode.size());
|
||||
// costs for deployment
|
||||
gas += bytecodeSize * GasCosts::createDataGas;
|
||||
// costs for transaction
|
||||
gas += gasForTransaction(m_compiler.object("").bytecode, true);
|
||||
gas += gasForTransaction(m_compiler.object(m_compiler.lastContractName()).bytecode, true);
|
||||
|
||||
BOOST_REQUIRE(!gas.isInfinite);
|
||||
BOOST_CHECK(gas.value == m_gasUsed);
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
}
|
||||
|
||||
gas += GasEstimator::functionalEstimation(
|
||||
*m_compiler.runtimeAssemblyItems(""),
|
||||
*m_compiler.runtimeAssemblyItems(m_compiler.lastContractName()),
|
||||
_sig
|
||||
);
|
||||
BOOST_REQUIRE(!gas.isInfinite);
|
||||
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
m_compilerStack.addSource("", "pragma solidity >=0.0;\n" + _code);
|
||||
BOOST_REQUIRE_MESSAGE(m_compilerStack.parseAndAnalyze(), "Parsing contract failed");
|
||||
|
||||
Json::Value generatedInterface = m_compilerStack.contractABI("");
|
||||
Json::Value generatedInterface = m_compilerStack.contractABI(m_compilerStack.lastContractName());
|
||||
Json::Value expectedInterface;
|
||||
BOOST_REQUIRE(m_reader.parse(_expectedInterfaceString, expectedInterface));
|
||||
BOOST_CHECK_MESSAGE(
|
||||
|
||||
@@ -69,7 +69,7 @@ public:
|
||||
);
|
||||
BOOST_ERROR("Compiling contract failed");
|
||||
}
|
||||
eth::LinkerObject obj = m_compiler.object(_contractName);
|
||||
eth::LinkerObject obj = m_compiler.object(_contractName.empty() ? m_compiler.lastContractName() : _contractName);
|
||||
BOOST_REQUIRE(obj.linkReferences.empty());
|
||||
sendMessage(obj.bytecode + _arguments, true, _value);
|
||||
return m_output;
|
||||
|
||||
@@ -51,9 +51,9 @@ public:
|
||||
|
||||
Json::Value generatedDocumentation;
|
||||
if (_userDocumentation)
|
||||
generatedDocumentation = m_compilerStack.natspecUser("");
|
||||
generatedDocumentation = m_compilerStack.natspecUser(m_compilerStack.lastContractName());
|
||||
else
|
||||
generatedDocumentation = m_compilerStack.natspecDev("");
|
||||
generatedDocumentation = m_compilerStack.natspecDev(m_compilerStack.lastContractName());
|
||||
Json::Value expectedDocumentation;
|
||||
m_reader.parse(_expectedDocumentationString, expectedDocumentation);
|
||||
BOOST_CHECK_MESSAGE(
|
||||
|
||||
Reference in New Issue
Block a user