forked from boostorg/throw_exception
Add throw_from_library_test
This commit is contained in:
@ -7,15 +7,16 @@
|
|||||||
|
|
||||||
import testing ;
|
import testing ;
|
||||||
|
|
||||||
project
|
|
||||||
: requirements
|
|
||||||
<link>static
|
|
||||||
<exception-handling>on
|
|
||||||
;
|
|
||||||
|
|
||||||
run throw_exception_test.cpp ;
|
run throw_exception_test.cpp ;
|
||||||
run throw_exception_no_exceptions_test.cpp ;
|
run throw_exception_no_exceptions_test.cpp ;
|
||||||
run throw_exception_no_integration_test.cpp ;
|
run throw_exception_no_integration_test.cpp ;
|
||||||
run throw_exception_no_both_test.cpp ;
|
run throw_exception_no_both_test.cpp ;
|
||||||
|
|
||||||
compile-fail throw_exception_fail.cpp ;
|
compile-fail throw_exception_fail.cpp ;
|
||||||
|
|
||||||
|
lib lib1_throw : lib1_throw.cpp : <define>LIB1_SOURCE=1 <link>shared:<define>LIB1_DYN_LINK=1 : : <link>shared:<define>LIB1_DYN_LINK=1 ;
|
||||||
|
lib lib2_throw : lib2_throw.cpp : <define>LIB2_SOURCE=1 <link>shared:<define>LIB2_DYN_LINK=1 : : <link>shared:<define>LIB2_DYN_LINK=1 ;
|
||||||
|
lib lib3_throw : lib3_throw.cpp : <define>LIB3_SOURCE=1 <link>shared:<define>LIB3_DYN_LINK=1 : : <link>shared:<define>LIB3_DYN_LINK=1 ;
|
||||||
|
|
||||||
|
run throw_from_library_test.cpp lib1_throw lib2_throw lib3_throw : : : <link>static : throw_from_library_static ;
|
||||||
|
run throw_from_library_test.cpp lib1_throw lib2_throw lib3_throw : : : <link>shared : throw_from_library_shared ;
|
||||||
|
13
test/lib1_throw.cpp
Normal file
13
test/lib1_throw.cpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
// Copyright 2018 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
//
|
||||||
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
#include "lib1_throw.hpp"
|
||||||
|
|
||||||
|
void lib1::f()
|
||||||
|
{
|
||||||
|
throw lib1::exception();
|
||||||
|
}
|
35
test/lib1_throw.hpp
Normal file
35
test/lib1_throw.hpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#ifndef LIB1_THROW_HPP_INCLUDED
|
||||||
|
#define LIB1_THROW_HPP_INCLUDED
|
||||||
|
|
||||||
|
// Copyright 2018 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
//
|
||||||
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#include <exception>
|
||||||
|
|
||||||
|
#if defined(LIB1_DYN_LINK)
|
||||||
|
# if defined(LIB1_SOURCE)
|
||||||
|
# define LIB1_DECL BOOST_SYMBOL_EXPORT
|
||||||
|
# else
|
||||||
|
# define LIB1_DECL BOOST_SYMBOL_IMPORT
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define LIB1_DECL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace lib1
|
||||||
|
{
|
||||||
|
|
||||||
|
struct exception: public std::exception
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
LIB1_DECL void f();
|
||||||
|
|
||||||
|
} // namespace lib1
|
||||||
|
|
||||||
|
#endif // #ifndef LIB1_THROW_HPP_INCLUDED
|
14
test/lib2_throw.cpp
Normal file
14
test/lib2_throw.cpp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// Copyright 2018 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
//
|
||||||
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
#include "lib2_throw.hpp"
|
||||||
|
#include <boost/throw_exception.hpp>
|
||||||
|
|
||||||
|
void lib2::f()
|
||||||
|
{
|
||||||
|
boost::throw_exception( lib2::exception() );
|
||||||
|
}
|
35
test/lib2_throw.hpp
Normal file
35
test/lib2_throw.hpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#ifndef LIB2_THROW_HPP_INCLUDED
|
||||||
|
#define LIB2_THROW_HPP_INCLUDED
|
||||||
|
|
||||||
|
// Copyright 2018 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
//
|
||||||
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#include <exception>
|
||||||
|
|
||||||
|
#if defined(LIB2_DYN_LINK)
|
||||||
|
# if defined(LIB2_SOURCE)
|
||||||
|
# define LIB2_DECL BOOST_SYMBOL_EXPORT
|
||||||
|
# else
|
||||||
|
# define LIB2_DECL BOOST_SYMBOL_IMPORT
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define LIB2_DECL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace lib2
|
||||||
|
{
|
||||||
|
|
||||||
|
struct exception: public std::exception
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
LIB2_DECL void f();
|
||||||
|
|
||||||
|
} // namespace lib2
|
||||||
|
|
||||||
|
#endif // #ifndef LIB2_THROW_HPP_INCLUDED
|
14
test/lib3_throw.cpp
Normal file
14
test/lib3_throw.cpp
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// Copyright 2018 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
//
|
||||||
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
#include "lib3_throw.hpp"
|
||||||
|
#include <boost/throw_exception.hpp>
|
||||||
|
|
||||||
|
void lib3::f()
|
||||||
|
{
|
||||||
|
BOOST_THROW_EXCEPTION( lib3::exception() );
|
||||||
|
}
|
35
test/lib3_throw.hpp
Normal file
35
test/lib3_throw.hpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
#ifndef LIB3_THROW_HPP_INCLUDED
|
||||||
|
#define LIB3_THROW_HPP_INCLUDED
|
||||||
|
|
||||||
|
// Copyright 2018 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
//
|
||||||
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#include <exception>
|
||||||
|
|
||||||
|
#if defined(LIB3_DYN_LINK)
|
||||||
|
# if defined(LIB3_SOURCE)
|
||||||
|
# define LIB3_DECL BOOST_SYMBOL_EXPORT
|
||||||
|
# else
|
||||||
|
# define LIB3_DECL BOOST_SYMBOL_IMPORT
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define LIB3_DECL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace lib3
|
||||||
|
{
|
||||||
|
|
||||||
|
struct exception: public std::exception
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
LIB3_DECL void f();
|
||||||
|
|
||||||
|
} // namespace lib3
|
||||||
|
|
||||||
|
#endif // #ifndef LIB3_THROW_HPP_INCLUDED
|
20
test/throw_from_library_test.cpp
Normal file
20
test/throw_from_library_test.cpp
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// Copyright 2018 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
//
|
||||||
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
|
||||||
|
#include "lib1_throw.hpp"
|
||||||
|
#include "lib2_throw.hpp"
|
||||||
|
#include "lib3_throw.hpp"
|
||||||
|
#include <boost/core/lightweight_test.hpp>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
BOOST_TEST_THROWS( lib1::f(), lib1::exception );
|
||||||
|
BOOST_TEST_THROWS( lib2::f(), lib2::exception );
|
||||||
|
BOOST_TEST_THROWS( lib3::f(), lib3::exception );
|
||||||
|
|
||||||
|
return boost::report_errors();
|
||||||
|
}
|
Reference in New Issue
Block a user