Allow building with new boost version 1.59

This commit is contained in:
Lefteris Karapetsas 2015-10-24 23:11:01 +02:00
parent 7a9f8d9f35
commit a5a41e1f22

View File

@ -24,15 +24,31 @@
#include <functional> #include <functional>
#include <boost/test/unit_test.hpp> #include <boost/test/unit_test.hpp>
#include <boost/filesystem.hpp> #include <boost/filesystem.hpp>
#include <boost/version.hpp>
namespace dev namespace dev
{ {
namespace test 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. /// 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() /// Our version of BOOST_REQUIRE_NO_THROW()
/// @param _statenent The statement for which to make sure no exceptions are thrown /// @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 /// @param _message A message to act as a prefix to the expression's error information
#define ETH_TEST_REQUIRE_NO_THROW(_statement, _message) \ #define ETH_TEST_REQUIRE_NO_THROW(_statement, _message) \
do \ do \
@ -46,12 +62,14 @@ namespace test
{ \ { \
auto msg = std::string(_message " due to an exception thrown by " \ auto msg = std::string(_message " due to an exception thrown by " \
BOOST_STRINGIZE(_statement) "\n") + boost::diagnostic_information(_e); \ BOOST_STRINGIZE(_statement) "\n") + boost::diagnostic_information(_e); \
BOOST_CHECK_IMPL(false, msg, REQUIRE, CHECK_MSG); \ ETH_BOOST_CHECK_IMPL(msg, REQUIRE); \
} \ } \
catch (...) \ catch (...) \
{ \ { \
BOOST_CHECK_IMPL(false, "Unknown exception thrown by " \ ETH_BOOST_CHECK_IMPL( \
BOOST_STRINGIZE(_statement), REQUIRE, CHECK_MSG); \ "Unknown exception thrown by " BOOST_STRINGIZE(_statement), \
REQUIRE \
); \
} \ } \
} \ } \
while (0) while (0)
@ -72,12 +90,14 @@ namespace test
{ \ { \
auto msg = std::string(_message " due to an exception thrown by " \ auto msg = std::string(_message " due to an exception thrown by " \
BOOST_STRINGIZE(_statement) "\n") + boost::diagnostic_information(_e); \ BOOST_STRINGIZE(_statement) "\n") + boost::diagnostic_information(_e); \
BOOST_CHECK_IMPL(false, msg, CHECK, CHECK_MSG); \ ETH_BOOST_CHECK_IMPL(msg, CHECK); \
} \ } \
catch (...) \ catch (...) \
{ \ { \
BOOST_CHECK_IMPL(false, "Unknown exception thrown by " \ ETH_BOOST_CHECK_IMPL( \
BOOST_STRINGIZE(_statement), CHECK, CHECK_MSG ); \ "Unknown exception thrown by " BOOST_STRINGIZE(_statement), \
CHECK \
); \
} \ } \
} \ } \
while (0) while (0)