diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2013-11-20 18:21:25 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2013-11-20 18:21:25 +0000 |
commit | 6d888bc0daa7195e475aecfffa412b2555508787 (patch) | |
tree | 9945117f4c7869d52c57869dfab1e9a24745111c /llvm/unittests/ADT/SmallPtrSetTest.cpp | |
parent | cb42dbe7ad2cd1a9376c25cbd744f7c12f4f46a6 (diff) | |
download | bcm5719-llvm-6d888bc0daa7195e475aecfffa412b2555508787.tar.gz bcm5719-llvm-6d888bc0daa7195e475aecfffa412b2555508787.zip |
Add a test for assignment operator behavior which was changed in
r195239, as well as a comment about the fact that assigning over
a moved-from object was in fact tested. Addresses some of the review
feedback on r195239.
llvm-svn: 195260
Diffstat (limited to 'llvm/unittests/ADT/SmallPtrSetTest.cpp')
-rw-r--r-- | llvm/unittests/ADT/SmallPtrSetTest.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/llvm/unittests/ADT/SmallPtrSetTest.cpp b/llvm/unittests/ADT/SmallPtrSetTest.cpp index 1b564ac05ac..d885f69b211 100644 --- a/llvm/unittests/ADT/SmallPtrSetTest.cpp +++ b/llvm/unittests/ADT/SmallPtrSetTest.cpp @@ -16,7 +16,30 @@ using namespace llvm; -// SmallPtrSet swapping test. +TEST(SmallPtrSetTest, Assignment) { + int buf[8]; + for (int i = 0; i < 8; ++i) + buf[i] = 0; + + SmallPtrSet<int *, 4> s1; + s1.insert(&buf[0]); + s1.insert(&buf[1]); + + SmallPtrSet<int *, 4> s2; + (s2 = s1).insert(&buf[2]); + + // Self assign as well. + (s2 = s2).insert(&buf[3]); + + s1 = s2; + EXPECT_EQ(4U, s1.size()); + for (int i = 0; i < 8; ++i) + if (i < 4) + EXPECT_TRUE(s1.count(&buf[i])); + else + EXPECT_FALSE(s1.count(&buf[i])); +} + TEST(SmallPtrSetTest, GrowthTest) { int i; int buf[8]; @@ -112,6 +135,7 @@ TEST(SmallPtrSetTest, CopyAndMoveTest) { else EXPECT_FALSE(s3.count(&buf[i])); + // Move assign to the moved-from object. s1 = llvm_move(s3); EXPECT_EQ(4U, s1.size()); for (int i = 0; i < 8; ++i) |