aboutsummaryrefslogtreecommitdiff
path: root/unittests/ADT/DenseSetTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/ADT/DenseSetTest.cpp')
-rw-r--r--unittests/ADT/DenseSetTest.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/unittests/ADT/DenseSetTest.cpp b/unittests/ADT/DenseSetTest.cpp
index 4d5a82902f0e..a09537a3e990 100644
--- a/unittests/ADT/DenseSetTest.cpp
+++ b/unittests/ADT/DenseSetTest.cpp
@@ -73,6 +73,22 @@ TYPED_TEST(DenseSetTest, InitializerList) {
EXPECT_EQ(0u, set.count(3));
}
+TYPED_TEST(DenseSetTest, ConstIteratorComparison) {
+ TypeParam set({1});
+ const TypeParam &cset = set;
+ EXPECT_EQ(set.begin(), cset.begin());
+ EXPECT_EQ(set.end(), cset.end());
+ EXPECT_NE(set.end(), cset.begin());
+ EXPECT_NE(set.begin(), cset.end());
+}
+
+TYPED_TEST(DenseSetTest, DefaultConstruction) {
+ typename TypeParam::iterator I, J;
+ typename TypeParam::const_iterator CI, CJ;
+ EXPECT_EQ(I, J);
+ EXPECT_EQ(CI, CJ);
+}
+
TYPED_TEST(DenseSetTest, EmptyInitializerList) {
TypeParam set({});
EXPECT_EQ(0u, set.size());
@@ -169,4 +185,17 @@ TEST(DenseSetCustomTest, ReserveTest) {
EXPECT_EQ(0, CountCopyAndMove::Copy);
}
}
+TEST(DenseSetCustomTest, ConstTest) {
+ // Test that const pointers work okay for count and find, even when the
+ // underlying map is a non-const pointer.
+ DenseSet<int *> Map;
+ int A;
+ int *B = &A;
+ const int *C = &A;
+ Map.insert(B);
+ EXPECT_EQ(Map.count(B), 1u);
+ EXPECT_EQ(Map.count(C), 1u);
+ EXPECT_NE(Map.find(B), Map.end());
+ EXPECT_NE(Map.find(C), Map.end());
+}
}