#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) {
+ BOOST_CHECK( std::string(ex.what()).find("-- \n") != std::string::npos );
+ 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 {
try {
- throw senf::SystemException("::open()", ENOENT);
+ throw senf::SystemException("::open()", ENOENT) << "\nmore";
}
catch(senf::Exception & e) {
e << "\nx=" << 1 << boost::format("\ny=%d") % 2;
}
catch (senf::SystemException & e) {
BOOST_CHECK_EQUAL( e.errorNumber(), ENOENT );
- BOOST_CHECK_EQUAL( e.what(), "::open(): (2) No such file or directory\nx=1\ny=2" );
+ BOOST_CHECK_EQUAL( e.errorString(), "No such file or directory" );
+ std::string what (e.what());
+ std::string::size_type pos (what.find("-- \n"));
+ if (pos != std::string::npos)
+ what = std::string(what, pos+4);
+ BOOST_CHECK_EQUAL( what, "[No such file or directory] ::open()\nmore\nx=1\ny=2" );
}
}