mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Split imports tests to avoid resetting CompilerStack
This commit is contained in:
parent
cc4d30a7ac
commit
d9303d4cfb
@ -143,22 +143,46 @@ BOOST_AUTO_TEST_CASE(complex_import)
|
|||||||
BOOST_CHECK(c.compile());
|
BOOST_CHECK(c.compile());
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(name_clash_in_import)
|
BOOST_AUTO_TEST_CASE(name_clash_in_import_1)
|
||||||
{
|
{
|
||||||
CompilerStack c;
|
CompilerStack c;
|
||||||
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||||
c.addSource("b", "import \"a\"; contract A {} pragma solidity >=0.0;");
|
c.addSource("b", "import \"a\"; contract A {} pragma solidity >=0.0;");
|
||||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||||
BOOST_CHECK(!c.compile());
|
BOOST_CHECK(!c.compile());
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(name_clash_in_import_2)
|
||||||
|
{
|
||||||
|
CompilerStack c;
|
||||||
|
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||||
c.addSource("b", "import \"a\" as A; contract A {} pragma solidity >=0.0;");
|
c.addSource("b", "import \"a\" as A; contract A {} pragma solidity >=0.0;");
|
||||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||||
BOOST_CHECK(!c.compile());
|
BOOST_CHECK(!c.compile());
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(name_clash_in_import_3)
|
||||||
|
{
|
||||||
|
CompilerStack c;
|
||||||
|
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||||
c.addSource("b", "import {A as b} from \"a\"; contract b {} pragma solidity >=0.0;");
|
c.addSource("b", "import {A as b} from \"a\"; contract b {} pragma solidity >=0.0;");
|
||||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||||
BOOST_CHECK(!c.compile());
|
BOOST_CHECK(!c.compile());
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(name_clash_in_import_4)
|
||||||
|
{
|
||||||
|
CompilerStack c;
|
||||||
|
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||||
c.addSource("b", "import {A} from \"a\"; contract A {} pragma solidity >=0.0;");
|
c.addSource("b", "import {A} from \"a\"; contract A {} pragma solidity >=0.0;");
|
||||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||||
BOOST_CHECK(!c.compile());
|
BOOST_CHECK(!c.compile());
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(name_clash_in_import_5)
|
||||||
|
{
|
||||||
|
CompilerStack c;
|
||||||
|
c.addSource("a", "contract A {} pragma solidity >=0.0;");
|
||||||
c.addSource("b", "import {A} from \"a\"; contract B {} pragma solidity >=0.0;");
|
c.addSource("b", "import {A} from \"a\"; contract B {} pragma solidity >=0.0;");
|
||||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||||
BOOST_CHECK(c.compile());
|
BOOST_CHECK(c.compile());
|
||||||
@ -213,7 +237,7 @@ BOOST_AUTO_TEST_CASE(context_dependent_remappings_ensure_default_and_module_pres
|
|||||||
BOOST_CHECK(c.compile());
|
BOOST_CHECK(c.compile());
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(context_dependent_remappings_order_independent)
|
BOOST_AUTO_TEST_CASE(context_dependent_remappings_order_independent_1)
|
||||||
{
|
{
|
||||||
CompilerStack c;
|
CompilerStack c;
|
||||||
c.setRemappings(vector<CompilerStack::Remapping>{{"a", "x/y/z", "d"}, {"a/b", "x", "e"}});
|
c.setRemappings(vector<CompilerStack::Remapping>{{"a", "x/y/z", "d"}, {"a/b", "x", "e"}});
|
||||||
@ -223,14 +247,18 @@ BOOST_AUTO_TEST_CASE(context_dependent_remappings_order_independent)
|
|||||||
c.addSource("e/y/z/z.sol", "contract E {} pragma solidity >=0.0;");
|
c.addSource("e/y/z/z.sol", "contract E {} pragma solidity >=0.0;");
|
||||||
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||||
BOOST_CHECK(c.compile());
|
BOOST_CHECK(c.compile());
|
||||||
CompilerStack d;
|
}
|
||||||
d.setRemappings(vector<CompilerStack::Remapping>{{"a/b", "x", "e"}, {"a", "x/y/z", "d"}});
|
|
||||||
d.addSource("a/main.sol", "import \"x/y/z/z.sol\"; contract Main is D {} pragma solidity >=0.0;");
|
BOOST_AUTO_TEST_CASE(context_dependent_remappings_order_independent_2)
|
||||||
d.addSource("a/b/main.sol", "import \"x/y/z/z.sol\"; contract Main is E {} pragma solidity >=0.0;");
|
{
|
||||||
d.addSource("d/z.sol", "contract D {} pragma solidity >=0.0;");
|
CompilerStack c;
|
||||||
d.addSource("e/y/z/z.sol", "contract E {} pragma solidity >=0.0;");
|
c.setRemappings(vector<CompilerStack::Remapping>{{"a/b", "x", "e"}, {"a", "x/y/z", "d"}});
|
||||||
d.setEVMVersion(dev::test::Options::get().evmVersion());
|
c.addSource("a/main.sol", "import \"x/y/z/z.sol\"; contract Main is D {} pragma solidity >=0.0;");
|
||||||
BOOST_CHECK(d.compile());
|
c.addSource("a/b/main.sol", "import \"x/y/z/z.sol\"; contract Main is E {} pragma solidity >=0.0;");
|
||||||
|
c.addSource("d/z.sol", "contract D {} pragma solidity >=0.0;");
|
||||||
|
c.addSource("e/y/z/z.sol", "contract E {} pragma solidity >=0.0;");
|
||||||
|
c.setEVMVersion(dev::test::Options::get().evmVersion());
|
||||||
|
BOOST_CHECK(c.compile());
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(shadowing_via_import)
|
BOOST_AUTO_TEST_CASE(shadowing_via_import)
|
||||||
|
Loading…
Reference in New Issue
Block a user