aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/SmallVectorTest.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-08-19 17:48:28 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-08-19 17:48:28 +0000
commit825e955e40d2d68770aab2f85785f33fd2adbd31 (patch)
treec00b5f3f821623b7578bcf0cfc1a5c14e82c5e0f /llvm/unittests/ADT/SmallVectorTest.cpp
parenta5fbf27bc85018b568433bf4b61aa42a2ab025c0 (diff)
downloadllvm-825e955e40d2d68770aab2f85785f33fd2adbd31.zip
llvm-825e955e40d2d68770aab2f85785f33fd2adbd31.tar.gz
llvm-825e955e40d2d68770aab2f85785f33fd2adbd31.tar.bz2
Add SmallVector::{capacity,set_size}.
- These allow clients to make use of the extra elements in the vector which have already been allocated, without requiring them to be value initialized. llvm-svn: 79433
Diffstat (limited to 'llvm/unittests/ADT/SmallVectorTest.cpp')
-rw-r--r--llvm/unittests/ADT/SmallVectorTest.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/SmallVectorTest.cpp b/llvm/unittests/ADT/SmallVectorTest.cpp
index addd904..8a81796 100644
--- a/llvm/unittests/ADT/SmallVectorTest.cpp
+++ b/llvm/unittests/ADT/SmallVectorTest.cpp
@@ -381,4 +381,22 @@ TEST_F(SmallVectorTest, ConstVectorTest) {
EXPECT_TRUE(constVector.begin() == constVector.end());
}
+// Direct array access.
+TEST_F(SmallVectorTest, DirectVectorTest) {
+ EXPECT_EQ(0u, theVector.size());
+ EXPECT_EQ(4u, theVector.capacity());
+ EXPECT_EQ(0, Constructable::getNumConstructorCalls());
+ theVector.end()[0] = 1;
+ theVector.end()[1] = 2;
+ theVector.end()[2] = 3;
+ theVector.end()[3] = 4;
+ theVector.set_size(4);
+ EXPECT_EQ(4u, theVector.size());
+ EXPECT_EQ(4, Constructable::getNumConstructorCalls());
+ EXPECT_EQ(1, theVector[0].getValue());
+ EXPECT_EQ(2, theVector[1].getValue());
+ EXPECT_EQ(3, theVector[2].getValue());
+ EXPECT_EQ(4, theVector[3].getValue());
+}
+
}