Added meaningful exception types.

This commit is contained in:
Christian 2014-10-15 14:45:51 +02:00
parent de155c13ef
commit 35383f9b88
2 changed files with 7 additions and 6 deletions

View File

@ -26,6 +26,7 @@
#include <libsolidity/Scanner.h> #include <libsolidity/Scanner.h>
#include <libsolidity/Parser.h> #include <libsolidity/Parser.h>
#include <libsolidity/NameAndTypeResolver.h> #include <libsolidity/NameAndTypeResolver.h>
#include <libsolidity/Exceptions.h>
#include <boost/test/unit_test.hpp> #include <boost/test/unit_test.hpp>
namespace dev { namespace dev {
@ -60,7 +61,7 @@ BOOST_AUTO_TEST_CASE(double_stateVariable_declaration)
" uint256 variable;\n" " uint256 variable;\n"
" uint128 variable;\n" " uint128 variable;\n"
"}\n"; "}\n";
BOOST_CHECK_THROW(parseTextAndResolveNames(text), std::exception); BOOST_CHECK_THROW(parseTextAndResolveNames(text), DeclarationError);
} }
BOOST_AUTO_TEST_CASE(double_function_declaration) BOOST_AUTO_TEST_CASE(double_function_declaration)
@ -69,7 +70,7 @@ BOOST_AUTO_TEST_CASE(double_function_declaration)
" function fun() { var x; }\n" " function fun() { var x; }\n"
" function fun() { var x; }\n" " function fun() { var x; }\n"
"}\n"; "}\n";
BOOST_CHECK_THROW(parseTextAndResolveNames(text), std::exception); BOOST_CHECK_THROW(parseTextAndResolveNames(text), DeclarationError);
} }
BOOST_AUTO_TEST_CASE(double_variable_declaration) BOOST_AUTO_TEST_CASE(double_variable_declaration)
@ -77,7 +78,7 @@ BOOST_AUTO_TEST_CASE(double_variable_declaration)
char const* text = "contract test {\n" char const* text = "contract test {\n"
" function f() { uint256 x; if (true) { uint256 x; } }\n" " function f() { uint256 x; if (true) { uint256 x; } }\n"
"}\n"; "}\n";
BOOST_CHECK_THROW(parseTextAndResolveNames(text), std::exception); BOOST_CHECK_THROW(parseTextAndResolveNames(text), DeclarationError);
} }
BOOST_AUTO_TEST_CASE(name_shadowing) BOOST_AUTO_TEST_CASE(name_shadowing)
@ -104,7 +105,7 @@ BOOST_AUTO_TEST_CASE(undeclared_name)
" uint256 variable;\n" " uint256 variable;\n"
" function f(uint256 arg) { f(notfound); }" " function f(uint256 arg) { f(notfound); }"
"}\n"; "}\n";
BOOST_CHECK_THROW(parseTextAndResolveNames(text), std::exception); BOOST_CHECK_THROW(parseTextAndResolveNames(text), DeclarationError);
} }
BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE_END()

View File

@ -25,6 +25,7 @@
#include <libdevcore/Log.h> #include <libdevcore/Log.h>
#include <libsolidity/Scanner.h> #include <libsolidity/Scanner.h>
#include <libsolidity/Parser.h> #include <libsolidity/Parser.h>
#include <libsolidity/Exceptions.h>
#include <boost/test/unit_test.hpp> #include <boost/test/unit_test.hpp>
namespace dev { namespace dev {
@ -54,8 +55,7 @@ BOOST_AUTO_TEST_CASE(missing_variable_name_in_declaration)
char const* text = "contract test {\n" char const* text = "contract test {\n"
" uint256 ;\n" " uint256 ;\n"
"}\n"; "}\n";
cwarn << "The next error is expected."; BOOST_CHECK_THROW(parseText(text), ParserError);
BOOST_CHECK_THROW(parseText(text), std::exception);
} }
BOOST_AUTO_TEST_CASE(empty_function) BOOST_AUTO_TEST_CASE(empty_function)