X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2Fauto_unit_test.hh;h=c7e090add92f1f6070acfd2c53d2aa4006ba9470;hb=3a0e403d889f8a16d78d50bbcd7a0f0157b05313;hp=b81bed4f9ddf92067a33c71552b77685cc1a406d;hpb=1b32783499fa4d42ef090b210c0eec659a5b5a4d;p=senf.git diff --git a/senf/Utils/auto_unit_test.hh b/senf/Utils/auto_unit_test.hh index b81bed4..c7e090a 100644 --- a/senf/Utils/auto_unit_test.hh +++ b/senf/Utils/auto_unit_test.hh @@ -90,17 +90,16 @@ \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 { namespace test { template - typename detail::NoCharIterator::type nocharIterator(Iterator i) - { return typename detail::NoCharIterator::type (i); } + typename detail::NoCharIterator::type nocharIterator(Iterator i); }} @@ -111,16 +110,41 @@ 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" //#include "auto_unit_test.ct" -//#include "auto_unit_test.cti" +#include "auto_unit_test.cti" #endif