|
1 | 1 | // Copyright (C) 2023 Christian Mazakas |
2 | | -// Copyright (C) 2023-2024 Joaquin M Lopez Munoz |
| 2 | +// Copyright (C) 2023-2026 Joaquin M Lopez Munoz |
3 | 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying |
4 | 4 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
5 | 5 |
|
@@ -148,12 +148,16 @@ namespace { |
148 | 148 | values2.push_back(raii_convertible(v)); |
149 | 149 | } |
150 | 150 |
|
151 | | - thread_runner(values2, [&x](boost::span<raii_convertible> s) { |
152 | | - BOOST_TEST_EQ(x.insert(s.begin(), s.end()), s.size()); |
| 151 | + auto s = x.size(); |
| 152 | + std::atomic<std::uint64_t> num_inserts{0}; |
| 153 | + thread_runner(values2, [&x, &num_inserts](boost::span<raii_convertible> s) { |
| 154 | + num_inserts += x.insert(s.begin(), s.begin() + s.size() / 2); |
| 155 | + num_inserts += x.insert(s.begin(), s.end()); |
153 | 156 | }); |
| 157 | + BOOST_TEST_EQ(x.size(), s + num_inserts); |
154 | 158 |
|
155 | 159 | BOOST_TEST_EQ( |
156 | | - raii::default_constructor, value_type_cardinality * values2.size()); |
| 160 | + raii::default_constructor, value_type_cardinality * (values2.size() + values2.size() / 2)); |
157 | 161 | #if BOOST_WORKAROUND(BOOST_GCC_VERSION, >= 50300) && \ |
158 | 162 | BOOST_WORKAROUND(BOOST_GCC_VERSION, < 50500) |
159 | 163 | // some versions of old gcc have trouble eliding copies here |
@@ -1010,9 +1014,11 @@ namespace { |
1010 | 1014 | { |
1011 | 1015 | X x; |
1012 | 1016 |
|
1013 | | - thread_runner(dummy, [&x, &init_list](boost::span<raii>) { |
1014 | | - BOOST_TEST_EQ(x.insert(init_list), init_list.size()); |
| 1017 | + std::atomic<std::uint64_t> num_inserts{0}; |
| 1018 | + thread_runner(dummy, [&x, &init_list, &num_inserts](boost::span<raii>) { |
| 1019 | + num_inserts += x.insert(init_list); |
1015 | 1020 | }); |
| 1021 | + BOOST_TEST_EQ(num_inserts, x.size()); |
1016 | 1022 |
|
1017 | 1023 | BOOST_TEST_EQ(x.size(), reference_cont.size()); |
1018 | 1024 |
|
|
0 commit comments