aboutsummaryrefslogtreecommitdiffstats
path: root/SolidityParser.cpp
diff options
context:
space:
mode:
authorwinsvega <winsvega@mail.ru>2015-02-18 18:17:11 +0800
committerwinsvega <winsvega@mail.ru>2015-02-18 18:17:11 +0800
commit2f73e8e6bc1f586a0b40dc873ee6b5237f7e0b15 (patch)
tree89857832a67777a8792089c2b34ed8b005f29a3f /SolidityParser.cpp
parent2d7194cc58e2544e398166853b45879b376c7bf4 (diff)
parent7cf233bd9e0b70254bcce01d0f5c4a2399a3677d (diff)
downloaddexon-solidity-2f73e8e6bc1f586a0b40dc873ee6b5237f7e0b15.tar
dexon-solidity-2f73e8e6bc1f586a0b40dc873ee6b5237f7e0b15.tar.gz
dexon-solidity-2f73e8e6bc1f586a0b40dc873ee6b5237f7e0b15.tar.bz2
dexon-solidity-2f73e8e6bc1f586a0b40dc873ee6b5237f7e0b15.tar.lz
dexon-solidity-2f73e8e6bc1f586a0b40dc873ee6b5237f7e0b15.tar.xz
dexon-solidity-2f73e8e6bc1f586a0b40dc873ee6b5237f7e0b15.tar.zst
dexon-solidity-2f73e8e6bc1f586a0b40dc873ee6b5237f7e0b15.zip
Merge branch 'develop' of https://github.com/ethereum/cpp-ethereum into develop
Diffstat (limited to 'SolidityParser.cpp')
-rw-r--r--SolidityParser.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/SolidityParser.cpp b/SolidityParser.cpp
index 84f36170..5f9064e0 100644
--- a/SolidityParser.cpp
+++ b/SolidityParser.cpp
@@ -703,6 +703,56 @@ BOOST_AUTO_TEST_CASE(literal_constants_with_ether_subdenominations_in_expression
BOOST_CHECK_NO_THROW(parseTextExplainError(text));
}
+BOOST_AUTO_TEST_CASE(enum_valid_declaration)
+{
+ char const* text = R"(
+ contract c {
+ enum validEnum { Value1, Value2, Value3, Value4 }
+ function c ()
+ {
+ a = foo.Value3;
+ }
+ uint256 a;
+ })";
+ BOOST_CHECK_NO_THROW(parseTextExplainError(text));
+}
+
+BOOST_AUTO_TEST_CASE(empty_enum_declaration)
+{
+ char const* text = R"(
+ contract c {
+ enum foo { }
+ })";
+ BOOST_CHECK_NO_THROW(parseTextExplainError(text));
+}
+
+BOOST_AUTO_TEST_CASE(malformed_enum_declaration)
+{
+ char const* text = R"(
+ contract c {
+ enum foo { WARNING,}
+ })";
+ BOOST_CHECK_THROW(parseText(text), ParserError);
+}
+
+BOOST_AUTO_TEST_CASE(external_function)
+{
+ char const* text = R"(
+ contract c {
+ function x() external {}
+ })";
+ BOOST_CHECK_NO_THROW(parseTextExplainError(text));
+}
+
+BOOST_AUTO_TEST_CASE(external_variable)
+{
+ char const* text = R"(
+ contract c {
+ uint external x;
+ })";
+ BOOST_CHECK_THROW(parseText(text), ParserError);
+}
+
BOOST_AUTO_TEST_SUITE_END()
}