X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2Fauto_unit_test.hh;h=c7e090add92f1f6070acfd2c53d2aa4006ba9470;hb=767a76da8e5b96a69b620e44d32e0a1b04005679;hp=1163e693ccb01eedf392d45bd9dd131f7888cdb9;hpb=8348a88c43eb04dc2979f3c07b2e6e920f251073;p=senf.git diff --git a/senf/Utils/auto_unit_test.hh b/senf/Utils/auto_unit_test.hh index 1163e69..c7e090a 100644 --- a/senf/Utils/auto_unit_test.hh +++ b/senf/Utils/auto_unit_test.hh @@ -90,9 +90,9 @@ \ingroup unittest */ -#define SENF_CHECK_NO_THROW(expr) \ - BOOST_CHECK_NO_THROW( \ - try { expr ; } \ +#define SENF_CHECK_NO_THROW(expr) \ + BOOST_CHECK_NO_THROW( \ + try { expr ; } \ catch (std::exception & e) { std::cerr << e.what() << std::endl; throw; } ) namespace senf { @@ -110,11 +110,36 @@ namespace test { numeric form (and not as single characters) if the elements are of any char type. Other types are not affected. + \hideinitializer \ingroup unittest */ -#define SENF_CHECK_EQUAL_COLLECTIONS(a,b,c,d) \ - BOOST_CHECK_EQUAL_COLLECTIONS(senf::test::nocharIterator(a), senf::test::nocharIterator(b), \ - senf::test::nocharIterator(c), senf::test::nocharIterator(d)) +#define SENF_CHECK_EQUAL_COLLECTIONS(left_begin, left_end, right_begin, right_end) \ + BOOST_CHECK_EQUAL_COLLECTIONS( \ + senf::test::nocharIterator(left_begin), senf::test::nocharIterator(left_end), \ + senf::test::nocharIterator(right_begin), senf::test::nocharIterator(right_end)) + +/** \brief Define new test case + + \ref SENF_AUTO_UNIT_TEST() is like \c BOOST_AUTO_UNIT_TEST(). The only difference is, that + if an exception is thrown in the test case \ref SENF_AUTO_UNIT_TEST() will write out the + complete what-message of the exception. + + \hideinitializer + \ingroup unittest + */ +#define SENF_AUTO_UNIT_TEST(name) \ + void senf_test_body_##name(); \ + BOOST_AUTO_UNIT_TEST(name) \ + { \ + try { \ + senf_test_body_##name(); \ + } \ + catch (std::exception & e) { \ + std::cerr << e.what() << std::endl; \ + throw; \ + } \ + } \ + void senf_test_body_##name() ///////////////////////////////hh.e//////////////////////////////////////// //#include "auto_unit_test.cci"