From a9f39d2b94a31857cb2f7a4cd0c7002b5117111b Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Mon, 17 Sep 2018 22:04:27 +0300 Subject: [PATCH] Test make_shared/allocate_shared in dll_test too --- test/dll_test_lib.cpp | 26 ++++++++++++++++++++++++-- test/dll_test_main.cpp | 31 ++++++++++++++++++++++++++++--- 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/test/dll_test_lib.cpp b/test/dll_test_lib.cpp index 0098490..e253fca 100644 --- a/test/dll_test_lib.cpp +++ b/test/dll_test_lib.cpp @@ -6,7 +6,9 @@ // http://www.boost.org/LICENSE_1_0.txt #include +#include #include +#include #if defined(DLL_TEST_DYN_LINK) # define EXPORT BOOST_SYMBOL_EXPORT @@ -14,7 +16,27 @@ # define EXPORT #endif -EXPORT boost::shared_ptr dll_test() +EXPORT boost::shared_ptr dll_test_41() { - return boost::shared_ptr( new int( 42 ) ); + return boost::shared_ptr( new int( 41 ) ); +} + +EXPORT boost::shared_ptr dll_test_42() +{ + return boost::make_shared( 42 ); +} + +EXPORT boost::shared_ptr dll_test_43() +{ + return boost::allocate_shared( std::allocator(), 43 ); +} + +EXPORT boost::shared_ptr dll_test_44() +{ + return boost::make_shared( 44 ); +} + +EXPORT boost::shared_ptr dll_test_45() +{ + return boost::allocate_shared( std::allocator(), 45 ); } diff --git a/test/dll_test_main.cpp b/test/dll_test_main.cpp index c37bd25..2034f32 100644 --- a/test/dll_test_main.cpp +++ b/test/dll_test_main.cpp @@ -8,13 +8,38 @@ #include #include -boost::shared_ptr dll_test(); +boost::shared_ptr dll_test_41(); +boost::shared_ptr dll_test_42(); +boost::shared_ptr dll_test_43(); +boost::shared_ptr dll_test_44(); +boost::shared_ptr dll_test_45(); int main() { - boost::shared_ptr p1 = dll_test(); + { + boost::shared_ptr p = dll_test_41(); + BOOST_TEST_EQ( *p, 41 ); + } - BOOST_TEST_EQ( *p1, 42 ); + { + boost::shared_ptr p = dll_test_42(); + BOOST_TEST_EQ( *p, 42 ); + } + + { + boost::shared_ptr p = dll_test_43(); + BOOST_TEST_EQ( *p, 43 ); + } + + { + boost::shared_ptr p = dll_test_44(); + BOOST_TEST_EQ( p[0], 44 ); + } + + { + boost::shared_ptr p = dll_test_45(); + BOOST_TEST_EQ( p[0], 45 ); + } return boost::report_errors(); }