X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2Fauto_unit_test.hh;h=c7e090add92f1f6070acfd2c53d2aa4006ba9470;hb=8ee8742d5bcf846e0ebeb2abf994e371142b7707;hp=118f0de0110153f6089109d0bf0ef3ed95e90f86;hpb=309d78606f59617de0cfb1469b22111c846891ad;p=senf.git diff --git a/senf/Utils/auto_unit_test.hh b/senf/Utils/auto_unit_test.hh index 118f0de..c7e090a 100644 --- a/senf/Utils/auto_unit_test.hh +++ b/senf/Utils/auto_unit_test.hh @@ -90,25 +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); } - - template - typename detail::NoCharIterator::type nocharIterator(Value * i) - { return typename detail::NoCharIterator::type (i); } - - template - typename detail::NoCharIterator::type nocharIterator(Value const * i) - { return typename detail::NoCharIterator::type (i); } + typename detail::NoCharIterator::type nocharIterator(Iterator i); }} @@ -119,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(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_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_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