aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity/SolidityNameAndTypeResolution.cpp
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-09-12 01:35:31 +0800
committerchriseth <c@ethdev.com>2015-09-12 01:35:31 +0800
commit4360e0459622e7843ca9f8d7fb5113da0b8a044e (patch)
treee8f5fe5f139517c000c57fa271617621420ccb5d /test/libsolidity/SolidityNameAndTypeResolution.cpp
parent3c25420b8476f1516ac8cb10f5c1552609a08675 (diff)
parentd89832fa898d18f1962eff14acf3f2f7b1c4e3bc (diff)
downloaddexon-solidity-4360e0459622e7843ca9f8d7fb5113da0b8a044e.tar
dexon-solidity-4360e0459622e7843ca9f8d7fb5113da0b8a044e.tar.gz
dexon-solidity-4360e0459622e7843ca9f8d7fb5113da0b8a044e.tar.bz2
dexon-solidity-4360e0459622e7843ca9f8d7fb5113da0b8a044e.tar.lz
dexon-solidity-4360e0459622e7843ca9f8d7fb5113da0b8a044e.tar.xz
dexon-solidity-4360e0459622e7843ca9f8d7fb5113da0b8a044e.tar.zst
dexon-solidity-4360e0459622e7843ca9f8d7fb5113da0b8a044e.zip
Merge pull request #66 from chriseth/sol_libraries
Calling libraries.
Diffstat (limited to 'test/libsolidity/SolidityNameAndTypeResolution.cpp')
-rw-r--r--test/libsolidity/SolidityNameAndTypeResolution.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp
index ff91d8e5..5d174367 100644
--- a/test/libsolidity/SolidityNameAndTypeResolution.cpp
+++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp
@@ -2193,6 +2193,55 @@ BOOST_AUTO_TEST_CASE(string_bytes_conversion)
BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text));
}
+BOOST_AUTO_TEST_CASE(inheriting_from_library)
+{
+ char const* text = R"(
+ library Lib {}
+ contract Test is Lib {}
+ )";
+ BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
+}
+
+BOOST_AUTO_TEST_CASE(inheriting_library)
+{
+ char const* text = R"(
+ contract Test {}
+ library Lib is Test {}
+ )";
+ BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
+}
+
+BOOST_AUTO_TEST_CASE(library_having_variables)
+{
+ char const* text = R"(
+ library Lib { uint x; }
+ )";
+ BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
+}
+
+BOOST_AUTO_TEST_CASE(valid_library)
+{
+ char const* text = R"(
+ library Lib { uint constant x = 9; }
+ )";
+ BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text));
+}
+
+BOOST_AUTO_TEST_CASE(call_to_library_function)
+{
+ char const* text = R"(
+ library Lib {
+ uint constant public pimil = 3141592;
+ function min(uint x, uint y) returns (uint);
+ }
+ contract Test {
+ function f() {
+ uint t = Lib.min(Lib.pimil(), 7);
+ }
+ }
+ )";
+ BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text));
+}
BOOST_AUTO_TEST_CASE(creating_contract_within_the_contract)
{