aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity/SolidityExecutionFramework.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-02-28 23:35:22 +0800
committerGitHub <noreply@github.com>2018-02-28 23:35:22 +0800
commitfb8c4bd7c2bfea7eb33116cac79789cb1c08e3d9 (patch)
tree6045939ffcd888e7ea738ba02e2af8846a5bea5f /test/libsolidity/SolidityExecutionFramework.h
parent22d26e059c46274d572403a9528cd24e8d4de867 (diff)
parent0346f723422698158b4d5d9b4d7737d185cd8e52 (diff)
downloaddexon-solidity-fb8c4bd7c2bfea7eb33116cac79789cb1c08e3d9.tar
dexon-solidity-fb8c4bd7c2bfea7eb33116cac79789cb1c08e3d9.tar.gz
dexon-solidity-fb8c4bd7c2bfea7eb33116cac79789cb1c08e3d9.tar.bz2
dexon-solidity-fb8c4bd7c2bfea7eb33116cac79789cb1c08e3d9.tar.lz
dexon-solidity-fb8c4bd7c2bfea7eb33116cac79789cb1c08e3d9.tar.xz
dexon-solidity-fb8c4bd7c2bfea7eb33116cac79789cb1c08e3d9.tar.zst
dexon-solidity-fb8c4bd7c2bfea7eb33116cac79789cb1c08e3d9.zip
Merge pull request #3615 from ethereum/test-framework
Simplify contract compilation in the test framework
Diffstat (limited to 'test/libsolidity/SolidityExecutionFramework.h')
-rw-r--r--test/libsolidity/SolidityExecutionFramework.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/test/libsolidity/SolidityExecutionFramework.h b/test/libsolidity/SolidityExecutionFramework.h
index b853d558..f562721d 100644
--- a/test/libsolidity/SolidityExecutionFramework.h
+++ b/test/libsolidity/SolidityExecutionFramework.h
@@ -52,6 +52,17 @@ public:
std::map<std::string, dev::test::Address> const& _libraryAddresses = std::map<std::string, dev::test::Address>()
) override
{
+ bytes bytecode = compileContract(_sourceCode, _contractName, _libraryAddresses);
+ sendMessage(bytecode + _arguments, true, _value);
+ return m_output;
+ }
+
+ bytes compileContract(
+ std::string const& _sourceCode,
+ std::string const& _contractName = "",
+ std::map<std::string, dev::test::Address> const& _libraryAddresses = std::map<std::string, dev::test::Address>()
+ )
+ {
// Silence compiler version warning
std::string sourceCode = "pragma solidity >=0.0;\n" + _sourceCode;
m_compiler.reset(false);
@@ -72,8 +83,7 @@ public:
}
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;
+ return obj.bytecode;
}
protected: