Add tests for internal constructor.

This commit is contained in:
chriseth 2017-01-20 19:11:22 +01:00
parent 12b002b3b8
commit df4ef74199
2 changed files with 36 additions and 0 deletions

View File

@ -2505,6 +2505,16 @@ BOOST_AUTO_TEST_CASE(constructor_argument_overriding)
BOOST_CHECK(callContractFunction("getA()") == encodeArgs(3));
}
BOOST_AUTO_TEST_CASE(internal_constructor)
{
char const* sourceCode = R"(
contract C {
function C() internal {}
}
)";
BOOST_CHECK(compileAndRunWithoutCheck(sourceCode, 0, "C").empty());
}
BOOST_AUTO_TEST_CASE(function_modifier)
{
char const* sourceCode = R"(

View File

@ -4899,6 +4899,32 @@ BOOST_AUTO_TEST_CASE(assignment_to_constant)
CHECK_ERROR(text, TypeError, "Cannot assign to a constant variable.");
}
BOOST_AUTO_TEST_CASE(inconstructible_internal_constructor)
{
char const* text = R"(
contract C {
function C() internal {}
}
contract D {
function f() { var x = new C(); }
}
)";
CHECK_ERROR(text, TypeError, "Contract with internal constructor cannot be created directly.");
}
BOOST_AUTO_TEST_CASE(constructible_internal_constructor)
{
char const* text = R"(
contract C {
function C() internal {}
}
contract D is C {
function D() { }
}
)";
success(text);
}
BOOST_AUTO_TEST_SUITE_END()
}