diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index f1b4b641..4210f127 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -114,6 +114,7 @@ build_foa equivalent_keys_tests ; build_foa constructor_tests ; build_foa copy_tests ; build_foa move_tests ; +build_foa post_move_tests ; build_foa assign_tests ; build_foa insert_tests ; build_foa insert_hint_tests ; diff --git a/test/unordered/post_move_tests.cpp b/test/unordered/post_move_tests.cpp index 5184a3a0..c0bb0aa7 100644 --- a/test/unordered/post_move_tests.cpp +++ b/test/unordered/post_move_tests.cpp @@ -3,13 +3,7 @@ // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or move at http://www.boost.org/LICENSE_1_0.txt) -// clang-format off -#include "../helpers/prefix.hpp" -#include -#include -#include "../helpers/postfix.hpp" -// clang-format on - +#include "../helpers/unordered.hpp" #include "../helpers/test.hpp" #include "../objects/test.hpp" #include "../objects/cxx11_allocator.hpp" @@ -438,11 +432,13 @@ namespace move_tests { copy_assignment, move_assignment, equal, + #ifndef BOOST_UNORDERED_FOA_TESTS extract, + buckets, + #endif merge, erase_with_pred, container_swap, - buckets, double_move_construct, double_move_assign }; @@ -489,8 +485,13 @@ namespace move_tests { T y(v.begin(), v.end(), 0, hf, eq, al1); T x(boost::move(y), al2); +#ifdef BOOST_UNORDERED_FOA_TESTS + BOOST_TEST(y.empty()); + BOOST_TEST(y.begin() == y.end()); +#else BOOST_TEST_NOT(y.empty()); BOOST_TEST(y.begin() != y.end()); +#endif fps[i](y, v); @@ -558,8 +559,13 @@ namespace move_tests { #endif } else { +#ifdef BOOST_UNORDERED_FOA_TESTS + BOOST_TEST(y.empty()); + BOOST_TEST(y.begin() == y.end()); +#else BOOST_TEST_NOT(y.empty()); BOOST_TEST(y.begin() != y.end()); +#endif } fps[i](y, v); @@ -569,6 +575,42 @@ namespace move_tests { } } + using test::default_generator; + using test::generate_collisions; + using test::limited_range; + +#ifdef BOOST_UNORDERED_FOA_TESTS + boost::unordered_flat_map > >* + test_map_std_alloc; + + boost::unordered_flat_set >* test_set; + boost::unordered_flat_map > >* test_map; + + boost::unordered_flat_set >* + test_set_prop_move; + boost::unordered_flat_map, + test::propagate_move> >* test_map_prop_move; + + boost::unordered_flat_set >* + test_set_no_prop_move; + boost::unordered_flat_map, + test::no_propagate_move> >* test_map_no_prop_move; + + UNORDERED_TEST(post_move_tests, + ((test_set)(test_map)(test_set_prop_move)(test_map_prop_move)(test_set_no_prop_move)(test_map_no_prop_move))( + (default_generator)(generate_collisions)(limited_range))) +#else boost::unordered_map > >* test_map_std_alloc; @@ -612,16 +654,13 @@ namespace move_tests { test::cxx11_allocator, test::no_propagate_move> >* test_multimap_no_prop_move; - using test::default_generator; - using test::generate_collisions; - using test::limited_range; - UNORDERED_TEST(post_move_tests, ((test_set)(test_multiset)(test_map)(test_multimap)(test_set_prop_move)( test_multiset_prop_move)(test_map_prop_move)(test_multimap_prop_move)( test_set_no_prop_move)(test_multiset_no_prop_move)(test_map_no_prop_move)( test_multimap_no_prop_move))( (default_generator)(generate_collisions)(limited_range))) +#endif } RUN_TESTS()