diff options
author | Daniel Kirchner <daniel@ekpyron.org> | 2018-06-12 18:26:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-12 18:26:05 +0800 |
commit | 1f1ec180fb15431e5d398ad9346d206e284a35df (patch) | |
tree | 2b1ed997b1e214ee3383c8e49be59ea5fc6064d2 /test | |
parent | 56a965ea96203201155fc50a893931e7e60fddbe (diff) | |
parent | 9f546cfafcc4a12c6574550724a82074bb0afb66 (diff) | |
download | dexon-solidity-1f1ec180fb15431e5d398ad9346d206e284a35df.tar.gz dexon-solidity-1f1ec180fb15431e5d398ad9346d206e284a35df.tar.zst dexon-solidity-1f1ec180fb15431e5d398ad9346d206e284a35df.zip |
Merge pull request #4273 from ethereum/soltestExceptions
Improve exception handling in soltest and isoltest.
Diffstat (limited to 'test')
-rw-r--r-- | test/libsolidity/SyntaxTest.cpp | 13 | ||||
-rw-r--r-- | test/tools/isoltest.cpp | 27 |
2 files changed, 15 insertions, 25 deletions
diff --git a/test/libsolidity/SyntaxTest.cpp b/test/libsolidity/SyntaxTest.cpp index 1c2355d5..430073a0 100644 --- a/test/libsolidity/SyntaxTest.cpp +++ b/test/libsolidity/SyntaxTest.cpp @@ -268,9 +268,16 @@ int SyntaxTest::registerTests( [fullpath] { BOOST_REQUIRE_NO_THROW({ - stringstream errorStream; - if (!SyntaxTest(fullpath.string()).run(errorStream)) - BOOST_ERROR("Test expectation mismatch.\n" + errorStream.str()); + try + { + stringstream errorStream; + if (!SyntaxTest(fullpath.string()).run(errorStream)) + BOOST_ERROR("Test expectation mismatch.\n" + errorStream.str()); + } + catch (boost::exception const& _e) + { + BOOST_ERROR("Exception during syntax test: " << boost::diagnostic_information(_e)); + } }); }, _path.stem().string(), diff --git a/test/tools/isoltest.cpp b/test/tools/isoltest.cpp index 100fcbf0..d4b99e9d 100644 --- a/test/tools/isoltest.cpp +++ b/test/tools/isoltest.cpp @@ -150,39 +150,22 @@ SyntaxTestTool::Result SyntaxTestTool::process() m_test = unique_ptr<SyntaxTest>(new SyntaxTest(m_path.string())); success = m_test->run(outputMessages, " ", m_formatted); } - catch(CompilerError const& _e) + catch(boost::exception const& _e) { FormattedScope(cout, m_formatted, {BOLD, RED}) << - "Exception: " << SyntaxTest::errorMessage(_e) << endl; - return Result::Exception; - } - catch(InternalCompilerError const& _e) - { - FormattedScope(cout, m_formatted, {BOLD, RED}) << - "InternalCompilerError: " << SyntaxTest::errorMessage(_e) << endl; - return Result::Exception; - } - catch(FatalError const& _e) - { - FormattedScope(cout, m_formatted, {BOLD, RED}) << - "FatalError: " << SyntaxTest::errorMessage(_e) << endl; - return Result::Exception; - } - catch(UnimplementedFeatureError const& _e) - { - FormattedScope(cout, m_formatted, {BOLD, RED}) << - "UnimplementedFeatureError: " << SyntaxTest::errorMessage(_e) << endl; + "Exception during syntax test: " << boost::diagnostic_information(_e) << endl; return Result::Exception; } catch (std::exception const& _e) { - FormattedScope(cout, m_formatted, {BOLD, RED}) << "Exception: " << _e.what() << endl; + FormattedScope(cout, m_formatted, {BOLD, RED}) << + "Exception during syntax test: " << _e.what() << endl; return Result::Exception; } catch(...) { FormattedScope(cout, m_formatted, {BOLD, RED}) << - "Unknown Exception" << endl; + "Unknown exception during syntax test." << endl; return Result::Exception; } |