Add boost::exception, exception_ptr tests to throw_from_library_test as well

This commit is contained in:
Peter Dimov
2018-09-27 07:23:52 +03:00
parent 6845ba892d
commit a732dfad3c

View File

@ -8,13 +8,55 @@
#include "lib1_throw.hpp"
#include "lib2_throw.hpp"
#include "lib3_throw.hpp"
#include <boost/exception/exception.hpp>
#include <boost/exception_ptr.hpp>
#include <boost/core/lightweight_test.hpp>
int main()
void test_catch_by_type()
{
BOOST_TEST_THROWS( lib1::f(), lib1::exception );
BOOST_TEST_THROWS( lib2::f(), lib2::exception );
BOOST_TEST_THROWS( lib3::f(), lib3::exception );
}
void test_catch_by_exception()
{
BOOST_TEST_THROWS( lib2::f(), boost::exception );
BOOST_TEST_THROWS( lib3::f(), boost::exception );
}
void test_exception_ptr()
{
try
{
lib2::f();
}
catch( ... )
{
boost::exception_ptr p = boost::current_exception();
BOOST_TEST_THROWS( boost::rethrow_exception( p ), lib2::exception );
BOOST_TEST_THROWS( boost::rethrow_exception( p ), boost::exception );
}
try
{
lib3::f();
}
catch( ... )
{
boost::exception_ptr p = boost::current_exception();
BOOST_TEST_THROWS( boost::rethrow_exception( p ), lib3::exception );
BOOST_TEST_THROWS( boost::rethrow_exception( p ), boost::exception );
}
}
int main()
{
test_catch_by_type();
test_catch_by_exception();
test_exception_ptr();
return boost::report_errors();
}