[libcxx-commits] [libcxx] [libc++][test] Fix test not relying on MinSequenceContainer (PR #140372)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sat May 24 05:48:19 PDT 2025
https://github.com/huixie90 updated https://github.com/llvm/llvm-project/pull/140372
>From 5399bfab0c9a9dd6d55e713a74c2e511f0c9e3d0 Mon Sep 17 00:00:00 2001
From: Hui Xie <hui.xie1990 at gmail.com>
Date: Sat, 17 May 2025 12:30:11 +0100
Subject: [PATCH] [libc++][test] Fix test not relying on MinSequenceContainer
---
.../flat.multiset/insert_range.pass.cpp | 9 ++++++---
.../container.adaptors/flat.set/insert_range.pass.cpp | 9 ++++++---
.../libcxx/containers/container.adaptors/flat_helpers.h | 8 ++++++++
3 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/libcxx/test/libcxx/containers/container.adaptors/flat.multiset/insert_range.pass.cpp b/libcxx/test/libcxx/containers/container.adaptors/flat.multiset/insert_range.pass.cpp
index 3ca021c2ac650..d69b05a4dee5d 100644
--- a/libcxx/test/libcxx/containers/container.adaptors/flat.multiset/insert_range.pass.cpp
+++ b/libcxx/test/libcxx/containers/container.adaptors/flat.multiset/insert_range.pass.cpp
@@ -16,24 +16,27 @@
// out there are in that situation.
// https://github.com/llvm/llvm-project/issues/136656
+#include <algorithm>
+#include <cassert>
#include <flat_set>
#include <ranges>
#include <sstream>
#include <vector>
-#include "MinSequenceContainer.h"
+#include "../flat_helpers.h"
#include "test_macros.h"
void test() {
- MinSequenceContainer<int> v;
+ NotQuiteSequenceContainer<int> v;
std::flat_multiset s(v);
std::istringstream ints("0 1 1 0");
auto r = std::ranges::subrange(std::istream_iterator<int>(ints), std::istream_iterator<int>()) |
std::views::transform([](int i) { return i * i; });
static_assert(
-  { return requires { t.insert_range(r); }; }(v),
+  { return requires { t.insert_range(t.end(), r); }; }(v),
"This test is to test the case where the underlying container does not provide insert_range");
s.insert_range(r);
+ assert(std::ranges::equal(s, std::vector<int>{0, 0, 1, 1}));
}
int main(int, char**) {
diff --git a/libcxx/test/libcxx/containers/container.adaptors/flat.set/insert_range.pass.cpp b/libcxx/test/libcxx/containers/container.adaptors/flat.set/insert_range.pass.cpp
index 8023e251ccb17..35b9737e85106 100644
--- a/libcxx/test/libcxx/containers/container.adaptors/flat.set/insert_range.pass.cpp
+++ b/libcxx/test/libcxx/containers/container.adaptors/flat.set/insert_range.pass.cpp
@@ -16,24 +16,27 @@
// out there are in that situation.
// https://github.com/llvm/llvm-project/issues/136656
+#include <algorithm>
+#include <cassert>
#include <flat_set>
#include <ranges>
#include <sstream>
#include <vector>
-#include "MinSequenceContainer.h"
+#include "../flat_helpers.h"
#include "test_macros.h"
void test() {
- MinSequenceContainer<int> v;
+ NotQuiteSequenceContainer<int> v;
std::flat_set s(v);
std::istringstream ints("0 1 1 0");
auto r = std::ranges::subrange(std::istream_iterator<int>(ints), std::istream_iterator<int>()) |
std::views::transform([](int i) { return i * i; });
static_assert(
-  { return requires { t.insert_range(r); }; }(v),
+  { return requires { t.insert_range(t.end(), r); }; }(v),
"This test is to test the case where the underlying container does not provide insert_range");
s.insert_range(r);
+ assert(std::ranges::equal(s, std::vector<int>{0, 1}));
}
int main(int, char**) {
diff --git a/libcxx/test/libcxx/containers/container.adaptors/flat_helpers.h b/libcxx/test/libcxx/containers/container.adaptors/flat_helpers.h
index 1242c29715daa..cc59f59cc4ecc 100644
--- a/libcxx/test/libcxx/containers/container.adaptors/flat_helpers.h
+++ b/libcxx/test/libcxx/containers/container.adaptors/flat_helpers.h
@@ -9,6 +9,8 @@
#ifndef TEST_LIBCXX_CONTAINERS_CONTAINER_ADAPTORS_FLAT_HELPERS_H
#define TEST_LIBCXX_CONTAINERS_CONTAINER_ADAPTORS_FLAT_HELPERS_H
+#include <vector>
+
struct TrackCopyMove {
mutable int copy_count = 0;
int move_count = 0;
@@ -37,4 +39,10 @@ struct TrackCopyMove {
constexpr bool operator<(const TrackCopyMove&) const { return false; }
};
+template <class T>
+struct NotQuiteSequenceContainer : std::vector<T> {
+ // hide the name insert_range
+ void insert_range() = delete;
+};
+
#endif // TEST_LIBCXX_CONTAINERS_CONTAINER_ADAPTORS_FLAT_HELPERS_H
More information about the libcxx-commits
mailing list