// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/** \file
- \brief Exception.test unit tests */
+ \brief Exception unit tests */
//#include "Exception.test.hh"
//#include "Exception.test.ih"
// Custom includes
#include "Exception.hh"
+#include <boost/format.hpp>
+#include <errno.h>
#include "../Utils/auto_unit_test.hh"
#include <boost/test/test_tools.hpp>
-#include <boost/format.hpp>
-#include <errno.h>
#define prefix_
///////////////////////////////cc.p////////////////////////////////////////
+BOOST_AUTO_UNIT_TEST(wrapException)
+{
+ bool bad_cast (false);
+
+ try {
+ try {
+ try {
+ try {
+ try {
+ throw std::bad_cast();
+ }
+ SENF_WRAP_EXC(std::bad_cast)
+ }
+ SENF_WRAP_EXC(std::bad_cast)
+ }
+ catch (senf::ExceptionMixin & ex) {
+ ex << "\nspecial exception";
+ throw;
+ }
+ }
+ catch (std::exception const & ex) {
+#ifdef SENF_DEBUG
+ BOOST_CHECK( std::string(ex.what()).find("-- \n") != std::string::npos );
+#endif
+ BOOST_CHECK( std::string(ex.what()).find("special exception") != std::string::npos );
+ throw;
+ }
+ }
+ catch (std::bad_cast &) {
+ bad_cast = true;
+ }
+ BOOST_CHECK( bad_cast );
+}
+
BOOST_AUTO_UNIT_TEST(errnoException)
{
try {