[gcc r17-2716] libstdc++: Robustify flat_map::insert_range move counter test
Patrick Palka via Gcc-cvs <[email protected]>
| Newsgroups | gmane.comp.gcc.cvs |
|---|---|
| Message-ID | <20260726135926.733644BA2E2B__28545.044623182$1785074461$gmane$org@sourceware.org> |
https://gcc.gnu.org/g:b71686db1fdc589da34f80460f054407c1f54990 commit r17-2716-gb71686db1fdc589da34f80460f054407c1f54990 Author: Patrick Palka <[email protected]> Date: Sun Jul 26 09:58:58 2026 -0400 libstdc++: Robustify flat_map::insert_range move counter test Testing r17-2704-gf678da4a9930c8 on the 16 branch, which doesn't implement P0401 std::allocate_at_least, revealed that the added test isn't robust to std::vector initial capacity. The test needs to reserve sufficient capacity upfront so that reallocation doesn't happen during insert_range which would skew the move counter. libstdc++-v3/ChangeLog: * testsuite/23_containers/flat_map/1.cc (test14): Reserve sufficient capacity for the underlying containers before calling insert_range. Diff: --- libstdc++-v3/testsuite/23_containers/flat_map/1.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libstdc++-v3/testsuite/23_containers/flat_map/1.cc b/libstdc++-v3/testsuite/23_containers/flat_map/1.cc index d53e56a1b717..c3ad2883e65f 100644 --- a/libstdc++-v3/testsuite/23_containers/flat_map/1.cc +++ b/libstdc++-v3/testsuite/23_containers/flat_map/1.cc @@ -433,6 +433,12 @@ test14() {counter(2), counter(20)}, {counter(3), counter(30)}, }; + + auto [keys,values] = std::move(m).extract(); + keys.reserve(std::size(r)); + values.reserve(std::size(r)); + m.replace(std::move(keys), std::move(values)); + moves = 0; m.insert_range(std::sorted_unique, std::views::as_rvalue(r)); VERIFY( moves == 6 );