diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:01:22 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:01:22 +0000 |
commit | 71d5a2540a98c81f5bcaeb48805e0e2881f530ef (patch) | |
tree | 5343938942df402b49ec7300a1c25a2d4ccd5821 /unittests/ADT/DenseSetTest.cpp | |
parent | 31bbf64f3a4974a2d6c8b3b27ad2f519caf74057 (diff) |
Diffstat (limited to 'unittests/ADT/DenseSetTest.cpp')
-rw-r--r-- | unittests/ADT/DenseSetTest.cpp | 29 |
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()); +} } |