diff --git a/test/TestHelper.h b/test/TestHelper.h index 3e74b54c5..d50568ad9 100644 --- a/test/TestHelper.h +++ b/test/TestHelper.h @@ -15,8 +15,6 @@ along with solidity. If not, see . */ /** @file TestHelper.h - * @author Marko Simovic - * @date 2014 */ #pragma once @@ -31,78 +29,6 @@ namespace dev namespace test { -#if (BOOST_VERSION >= 105900) -#define ETH_BOOST_CHECK_IMPL(_message, _requireOrCheck) BOOST_TEST_TOOL_DIRECT_IMPL( \ - false, \ - _requireOrCheck, \ - _message \ - ) -#else -#define ETH_BOOST_CHECK_IMPL(_message, _requireOrCheck) BOOST_CHECK_IMPL( \ - false, \ - _message, \ - _requireOrCheck, \ - CHECK_MSG \ - ) -#endif - -/// Make sure that no Exception is thrown during testing. If one is thrown show its info and fail the test. -/// Our version of BOOST_REQUIRE_NO_THROW() -/// @param _statement The statement for which to make sure no exceptions are thrown -/// @param _message A message to act as a prefix to the expression's error information -#define ETH_TEST_REQUIRE_NO_THROW(_statement, _message) \ - do \ - { \ - try \ - { \ - BOOST_TEST_PASSPOINT(); \ - _statement; \ - } \ - catch (boost::exception const& _e) \ - { \ - auto msg = std::string(_message " due to an exception thrown by " \ - BOOST_STRINGIZE(_statement) "\n") + boost::diagnostic_information(_e); \ - ETH_BOOST_CHECK_IMPL(msg, REQUIRE); \ - } \ - catch (...) \ - { \ - ETH_BOOST_CHECK_IMPL( \ - "Unknown exception thrown by " BOOST_STRINGIZE(_statement), \ - REQUIRE \ - ); \ - } \ - } \ - while (0) - -/// Check if an Exception is thrown during testing. If one is thrown show its info and continue the test -/// Our version of BOOST_CHECK_NO_THROW() -/// @param _statement The statement for which to make sure no exceptions are thrown -/// @param _message A message to act as a prefix to the expression's error information -#define ETH_TEST_CHECK_NO_THROW(_statement, _message) \ - do \ - { \ - try \ - { \ - BOOST_TEST_PASSPOINT(); \ - _statement; \ - } \ - catch (boost::exception const& _e) \ - { \ - auto msg = std::string(_message " due to an exception thrown by " \ - BOOST_STRINGIZE(_statement) "\n") + boost::diagnostic_information(_e); \ - ETH_BOOST_CHECK_IMPL(msg, CHECK); \ - } \ - catch (...) \ - { \ - ETH_BOOST_CHECK_IMPL( \ - "Unknown exception thrown by " BOOST_STRINGIZE(_statement), \ - CHECK \ - ); \ - } \ - } \ - while (0) - - struct Options: boost::noncopyable { std::string ipcPath; diff --git a/test/contracts/AuctionRegistrar.cpp b/test/contracts/AuctionRegistrar.cpp index d56edc562..73a5d1ed0 100644 --- a/test/contracts/AuctionRegistrar.cpp +++ b/test/contracts/AuctionRegistrar.cpp @@ -223,7 +223,7 @@ protected: m_compiler.reset(false); m_compiler.addSource("", registrarCode); m_compiler.setOptimiserSettings(m_optimize, m_optimizeRuns); - ETH_TEST_REQUIRE_NO_THROW(m_compiler.compile(), "Compiling contract failed"); + BOOST_REQUIRE_MESSAGE(m_compiler.compile(), "Compiling contract failed"); s_compiledRegistrar.reset(new bytes(m_compiler.object("GlobalRegistrar").bytecode)); } sendMessage(*s_compiledRegistrar, true); diff --git a/test/contracts/FixedFeeRegistrar.cpp b/test/contracts/FixedFeeRegistrar.cpp index 967d60b69..8327999da 100644 --- a/test/contracts/FixedFeeRegistrar.cpp +++ b/test/contracts/FixedFeeRegistrar.cpp @@ -136,7 +136,7 @@ protected: m_compiler.reset(false); m_compiler.addSource("", registrarCode); m_compiler.setOptimiserSettings(m_optimize, m_optimizeRuns); - ETH_TEST_REQUIRE_NO_THROW(m_compiler.compile(), "Compiling contract failed"); + BOOST_REQUIRE_MESSAGE(m_compiler.compile(), "Compiling contract failed"); s_compiledRegistrar.reset(new bytes(m_compiler.object("FixedFeeRegistrar").bytecode)); } sendMessage(*s_compiledRegistrar, true); diff --git a/test/contracts/Wallet.cpp b/test/contracts/Wallet.cpp index d12b74937..bbe603d4a 100644 --- a/test/contracts/Wallet.cpp +++ b/test/contracts/Wallet.cpp @@ -451,7 +451,7 @@ protected: m_compiler.reset(false); m_compiler.addSource("", walletCode); m_compiler.setOptimiserSettings(m_optimize, m_optimizeRuns); - ETH_TEST_REQUIRE_NO_THROW(m_compiler.compile(), "Compiling contract failed"); + BOOST_REQUIRE_MESSAGE(m_compiler.compile(), "Compiling contract failed"); s_compiledWallet.reset(new bytes(m_compiler.object("Wallet").bytecode)); } bytes args = encodeArgs(u256(0x60), _required, _dailyLimit, u256(_owners.size()), _owners); diff --git a/test/libsolidity/GasMeter.cpp b/test/libsolidity/GasMeter.cpp index df9afaaef..b759678fe 100644 --- a/test/libsolidity/GasMeter.cpp +++ b/test/libsolidity/GasMeter.cpp @@ -50,7 +50,7 @@ public: m_compiler.reset(false); m_compiler.addSource("", "pragma solidity >=0.0;\n" + _sourceCode); m_compiler.setOptimiserSettings(dev::test::Options::get().optimize); - ETH_TEST_REQUIRE_NO_THROW(m_compiler.compile(), "Compiling contract failed"); + BOOST_REQUIRE_MESSAGE(m_compiler.compile(), "Compiling contract failed"); AssemblyItems const* items = m_compiler.runtimeAssemblyItems(""); ASTNode const& sourceUnit = m_compiler.ast(); diff --git a/test/libsolidity/Metadata.cpp b/test/libsolidity/Metadata.cpp index c46e31605..efe8fafff 100644 --- a/test/libsolidity/Metadata.cpp +++ b/test/libsolidity/Metadata.cpp @@ -46,7 +46,7 @@ BOOST_AUTO_TEST_CASE(metadata_stamp) CompilerStack compilerStack; compilerStack.addSource("", std::string(sourceCode)); compilerStack.setOptimiserSettings(dev::test::Options::get().optimize); - ETH_TEST_REQUIRE_NO_THROW(compilerStack.compile(), "Compiling contract failed"); + BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed"); bytes const& bytecode = compilerStack.runtimeObject("test").bytecode; std::string const& metadata = compilerStack.metadata("test"); BOOST_CHECK(dev::test::isValidMetadata(metadata)); @@ -72,7 +72,7 @@ BOOST_AUTO_TEST_CASE(metadata_stamp_experimental) CompilerStack compilerStack; compilerStack.addSource("", std::string(sourceCode)); compilerStack.setOptimiserSettings(dev::test::Options::get().optimize); - ETH_TEST_REQUIRE_NO_THROW(compilerStack.compile(), "Compiling contract failed"); + BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed"); bytes const& bytecode = compilerStack.runtimeObject("test").bytecode; std::string const& metadata = compilerStack.metadata("test"); BOOST_CHECK(dev::test::isValidMetadata(metadata)); @@ -106,7 +106,7 @@ BOOST_AUTO_TEST_CASE(metadata_relevant_sources) )"; compilerStack.addSource("B", std::string(sourceCode)); compilerStack.setOptimiserSettings(dev::test::Options::get().optimize); - ETH_TEST_REQUIRE_NO_THROW(compilerStack.compile(), "Compiling contract failed"); + BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed"); std::string const& serialisedMetadata = compilerStack.metadata("A"); BOOST_CHECK(dev::test::isValidMetadata(serialisedMetadata)); @@ -144,7 +144,7 @@ BOOST_AUTO_TEST_CASE(metadata_relevant_sources_imports) )"; compilerStack.addSource("C", std::string(sourceCode)); compilerStack.setOptimiserSettings(dev::test::Options::get().optimize); - ETH_TEST_REQUIRE_NO_THROW(compilerStack.compile(), "Compiling contract failed"); + BOOST_REQUIRE_MESSAGE(compilerStack.compile(), "Compiling contract failed"); std::string const& serialisedMetadata = compilerStack.metadata("C"); BOOST_CHECK(dev::test::isValidMetadata(serialisedMetadata)); diff --git a/test/libsolidity/SolidityABIJSON.cpp b/test/libsolidity/SolidityABIJSON.cpp index e5d9e99c1..42f7525f1 100644 --- a/test/libsolidity/SolidityABIJSON.cpp +++ b/test/libsolidity/SolidityABIJSON.cpp @@ -44,7 +44,7 @@ public: { m_compilerStack.reset(false); m_compilerStack.addSource("", "pragma solidity >=0.0;\n" + _code); - ETH_TEST_REQUIRE_NO_THROW(m_compilerStack.parseAndAnalyze(), "Parsing contract failed"); + BOOST_REQUIRE_MESSAGE(m_compilerStack.parseAndAnalyze(), "Parsing contract failed"); Json::Value generatedInterface = m_compilerStack.contractABI(""); Json::Value expectedInterface; diff --git a/test/libsolidity/SolidityExpressionCompiler.cpp b/test/libsolidity/SolidityExpressionCompiler.cpp index 58efa0a2e..677473866 100644 --- a/test/libsolidity/SolidityExpressionCompiler.cpp +++ b/test/libsolidity/SolidityExpressionCompiler.cpp @@ -125,7 +125,7 @@ bytes compileFirstExpression( for (ASTPointer const& node: sourceUnit->nodes()) if (ContractDefinition* contract = dynamic_cast(node.get())) { - ETH_TEST_REQUIRE_NO_THROW(resolver.resolveNamesAndTypes(*contract), "Resolving names failed"); + BOOST_REQUIRE_MESSAGE(resolver.resolveNamesAndTypes(*contract), "Resolving names failed"); inheritanceHierarchy = vector(1, contract); } for (ASTPointer const& node: sourceUnit->nodes()) diff --git a/test/libsolidity/SolidityNatspecJSON.cpp b/test/libsolidity/SolidityNatspecJSON.cpp index 149221d5a..d83773bc0 100644 --- a/test/libsolidity/SolidityNatspecJSON.cpp +++ b/test/libsolidity/SolidityNatspecJSON.cpp @@ -47,7 +47,7 @@ public: { m_compilerStack.reset(false); m_compilerStack.addSource("", "pragma solidity >=0.0;\n" + _code); - ETH_TEST_REQUIRE_NO_THROW(m_compilerStack.parseAndAnalyze(), "Parsing contract failed"); + BOOST_REQUIRE_MESSAGE(m_compilerStack.parseAndAnalyze(), "Parsing contract failed"); Json::Value generatedDocumentation; if (_userDocumentation) diff --git a/test/libsolidity/SolidityParser.cpp b/test/libsolidity/SolidityParser.cpp index 60ca03c97..a8698d138 100644 --- a/test/libsolidity/SolidityParser.cpp +++ b/test/libsolidity/SolidityParser.cpp @@ -250,7 +250,7 @@ BOOST_AUTO_TEST_CASE(function_natspec_documentation) FunctionDefinition const* function = nullptr; auto functions = contract->definedFunctions(); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(0), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(0), "Failed to retrieve function"); checkFunctionNatspec(function, "This is a test function"); } @@ -268,7 +268,7 @@ BOOST_AUTO_TEST_CASE(function_normal_comments) ErrorList errors; ASTPointer contract = parseText(text, errors); auto functions = contract->definedFunctions(); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(0), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(0), "Failed to retrieve function"); BOOST_CHECK_MESSAGE(function->documentation() == nullptr, "Should not have gotten a Natspecc comment for this function"); } @@ -294,17 +294,17 @@ BOOST_AUTO_TEST_CASE(multiple_functions_natspec_documentation) ASTPointer contract = parseText(text, errors); auto functions = contract->definedFunctions(); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(0), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(0), "Failed to retrieve function"); checkFunctionNatspec(function, "This is test function 1"); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(1), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(1), "Failed to retrieve function"); checkFunctionNatspec(function, "This is test function 2"); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(2), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(2), "Failed to retrieve function"); BOOST_CHECK_MESSAGE(function->documentation() == nullptr, "Should not have gotten natspec comment for functionName3()"); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(3), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(3), "Failed to retrieve function"); checkFunctionNatspec(function, "This is test function 4"); } @@ -323,7 +323,7 @@ BOOST_AUTO_TEST_CASE(multiline_function_documentation) ErrorList errors; ASTPointer contract = parseText(text, errors); auto functions = contract->definedFunctions(); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(0), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(0), "Failed to retrieve function"); checkFunctionNatspec(function, "This is a test function\n" " and it has 2 lines"); } @@ -351,10 +351,10 @@ BOOST_AUTO_TEST_CASE(natspec_comment_in_function_body) ASTPointer contract = parseText(text, errors); auto functions = contract->definedFunctions(); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(0), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(0), "Failed to retrieve function"); checkFunctionNatspec(function, "fun1 description"); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(1), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(1), "Failed to retrieve function"); checkFunctionNatspec(function, "This is a test function\n" " and it has 2 lines"); } @@ -380,7 +380,7 @@ BOOST_AUTO_TEST_CASE(natspec_docstring_between_keyword_and_signature) ASTPointer contract = parseText(text, errors); auto functions = contract->definedFunctions(); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(0), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(0), "Failed to retrieve function"); BOOST_CHECK_MESSAGE(!function->documentation(), "Shouldn't get natspec docstring for this function"); } @@ -406,7 +406,7 @@ BOOST_AUTO_TEST_CASE(natspec_docstring_after_signature) ASTPointer contract = parseText(text, errors); auto functions = contract->definedFunctions(); - ETH_TEST_REQUIRE_NO_THROW(function = functions.at(0), "Failed to retrieve function"); + BOOST_REQUIRE_MESSAGE(function = functions.at(0), "Failed to retrieve function"); BOOST_CHECK_MESSAGE(!function->documentation(), "Shouldn't get natspec docstring for this function"); }