diff --git a/test/cmake_test/CMakeLists.txt b/test/cmake_test/CMakeLists.txt index cb7c991..fd13ea7 100644 --- a/test/cmake_test/CMakeLists.txt +++ b/test/cmake_test/CMakeLists.txt @@ -9,7 +9,7 @@ project(cmake_subdir_test LANGUAGES CXX) # Those 2 should work the same # while using find_package for the installed Boost avoids the need to manually specify dependencies if(BOOST_CI_INSTALL_TEST) - find_package(boost_property_map REQUIRED) + find_package(Boost REQUIRED COMPONENTS property_map) else() set(BOOST_INCLUDE_LIBRARIES property_map) add_subdirectory(../../../.. deps/boost EXCLUDE_FROM_ALL) diff --git a/test/dynamic_properties_test.cpp b/test/dynamic_properties_test.cpp index d78aa71..779d31a 100644 --- a/test/dynamic_properties_test.cpp +++ b/test/dynamic_properties_test.cpp @@ -27,27 +27,22 @@ #include // generate a dynamic_property_map that maps strings to strings -// WARNING: This code leaks memory. For testing purposes only! // WARNING: This code uses library internals. For testing purposes only! boost::shared_ptr string2string_gen(const std::string&, const boost::any&, const boost::any&) { - typedef std::map map_t; - typedef - boost::associative_property_map< std::map > - property_t; + using map_t = std::map; + using property_t = boost::associative_property_map; + using adaptor_t = boost::detail::dynamic_property_map_adaptor; + // property_t only views mymap, so the returned shared_ptr's deleter holds + // mymap to keep it alive as long as the adaptor. + std::shared_ptr mymap = std::make_shared(); + adaptor_t* adaptor = new adaptor_t(property_t(*mymap)); - map_t* mymap = new map_t(); // hint: leaky memory here! - - property_t property_map(*mymap); - - boost::shared_ptr pm( - new - boost::detail::dynamic_property_map_adaptor(property_map)); - - return pm; + return boost::shared_ptr( + adaptor, [mymap](boost::dynamic_property_map* p) { delete p; }); } diff --git a/test/suppressions.txt b/test/suppressions.txt deleted file mode 100644 index e842f62..0000000 --- a/test/suppressions.txt +++ /dev/null @@ -1,2 +0,0 @@ -leak:dynamic_properties_test -leak:dynamic_properties_no_rtti_test