mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Test double inclusion of bytecode.
This commit is contained in:
parent
3dc83aa34e
commit
8e5f1c0d50
@ -8992,6 +8992,35 @@ BOOST_AUTO_TEST_CASE(contracts_separated_with_comment)
|
|||||||
compileAndRun(sourceCode, 0, "C2");
|
compileAndRun(sourceCode, 0, "C2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(include_creation_bytecode_only_once)
|
||||||
|
{
|
||||||
|
char const* sourceCode = R"(
|
||||||
|
contract D {
|
||||||
|
bytes a = hex"1237651237125387136581271652831736512837126583171583712358126123765123712538713658127165283173651283712658317158371235812612376512371253871365812716528317365128371265831715837123581261237651237125387136581271652831736512837126583171583712358126";
|
||||||
|
bytes b = hex"1237651237125327136581271252831736512837126583171383712358126123765125712538713658127165253173651283712658357158371235812612376512371a5387136581271652a317365128371265a317158371235812612a765123712538a13658127165a83173651283712a58317158371235a126";
|
||||||
|
function D(uint) {}
|
||||||
|
}
|
||||||
|
contract Double {
|
||||||
|
function f() {
|
||||||
|
new D(2);
|
||||||
|
}
|
||||||
|
function g() {
|
||||||
|
new D(3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
contract Single {
|
||||||
|
function f() {
|
||||||
|
new D(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)";
|
||||||
|
compileAndRun(sourceCode);
|
||||||
|
BOOST_CHECK_LE(
|
||||||
|
double(m_compiler.object("Double").bytecode.size()),
|
||||||
|
1.1 * double(m_compiler.object("Single").bytecode.size())
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(recursive_structs)
|
BOOST_AUTO_TEST_CASE(recursive_structs)
|
||||||
{
|
{
|
||||||
char const* sourceCode = R"(
|
char const* sourceCode = R"(
|
||||||
|
Loading…
Reference in New Issue
Block a user