diff options
| author | Jean-Luc Duprat <jduprat@apple.com> | 2013-03-29 22:07:12 +0000 |
|---|---|---|
| committer | Jean-Luc Duprat <jduprat@apple.com> | 2013-03-29 22:07:12 +0000 |
| commit | 89fe247094e5126b81354f56991d3dceb22c14fb (patch) | |
| tree | 2c54949bb3e35b3931684da1136496e45ab827f7 /llvm/unittests/ADT/SmallPtrSetTest.cpp | |
| parent | c9fbd23621e7d7c94e26642d9348d532155aaadf (diff) | |
| download | llvm-89fe247094e5126b81354f56991d3dceb22c14fb.zip llvm-89fe247094e5126b81354f56991d3dceb22c14fb.tar.gz llvm-89fe247094e5126b81354f56991d3dceb22c14fb.tar.bz2 | |
SmallVector and SmallPtrSet allocations now power-of-two aligned.
This time tested on both OSX and Linux.
llvm-svn: 178377
Diffstat (limited to 'llvm/unittests/ADT/SmallPtrSetTest.cpp')
| -rw-r--r-- | llvm/unittests/ADT/SmallPtrSetTest.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/SmallPtrSetTest.cpp b/llvm/unittests/ADT/SmallPtrSetTest.cpp index 9114875..f85d7c9 100644 --- a/llvm/unittests/ADT/SmallPtrSetTest.cpp +++ b/llvm/unittests/ADT/SmallPtrSetTest.cpp @@ -17,6 +17,61 @@ using namespace llvm; // SmallPtrSet swapping test. +TEST(SmallPtrSetTest, GrowthTest) { + int i; + int buf[8]; + for(i=0; i<8; ++i) buf[i]=0; + + + SmallPtrSet<int *, 4> s; + typedef SmallPtrSet<int *, 4>::iterator iter; + + s.insert(&buf[0]); + s.insert(&buf[1]); + s.insert(&buf[2]); + s.insert(&buf[3]); + EXPECT_EQ(4U, s.size()); + + i = 0; + for(iter I=s.begin(), E=s.end(); I!=E; ++I, ++i) + (**I)++; + EXPECT_EQ(4, i); + for(i=0; i<8; ++i) + EXPECT_EQ(i<4?1:0,buf[i]); + + s.insert(&buf[4]); + s.insert(&buf[5]); + s.insert(&buf[6]); + s.insert(&buf[7]); + + i = 0; + for(iter I=s.begin(), E=s.end(); I!=E; ++I, ++i) + (**I)++; + EXPECT_EQ(8, i); + s.erase(&buf[4]); + s.erase(&buf[5]); + s.erase(&buf[6]); + s.erase(&buf[7]); + EXPECT_EQ(4U, s.size()); + + i = 0; + for(iter I=s.begin(), E=s.end(); I!=E; ++I, ++i) + (**I)++; + EXPECT_EQ(4, i); + for(i=0; i<8; ++i) + EXPECT_EQ(i<4?3:1,buf[i]); + + s.clear(); + for(i=0; i<8; ++i) buf[i]=0; + for(i=0; i<128; ++i) s.insert(&buf[i%8]); // test repeated entires + EXPECT_EQ(8U, s.size()); + for(iter I=s.begin(), E=s.end(); I!=E; ++I, ++i) + (**I)++; + for(i=0; i<8; ++i) + EXPECT_EQ(1,buf[i]); +} + + TEST(SmallPtrSetTest, SwapTest) { int buf[10]; |
