diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2009-10-14 17:57:32 +0000 | 
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2009-10-14 17:57:32 +0000 | 
| commit | 59850d0874429601812bc13408cb1f776649027c (patch) | |
| tree | b21f6de4e08b89bb7931806bab798fc2a5e3a686 /unittests/ADT/SmallVectorTest.cpp | |
| parent | 18f153bdb9db52e7089a2d5293b96c45a3124a26 (diff) | |
Notes
Diffstat (limited to 'unittests/ADT/SmallVectorTest.cpp')
| -rw-r--r-- | unittests/ADT/SmallVectorTest.cpp | 27 | 
1 files changed, 23 insertions, 4 deletions
diff --git a/unittests/ADT/SmallVectorTest.cpp b/unittests/ADT/SmallVectorTest.cpp index 19ef099224d4..8a817966cb8f 100644 --- a/unittests/ADT/SmallVectorTest.cpp +++ b/unittests/ADT/SmallVectorTest.cpp @@ -196,7 +196,8 @@ TEST_F(SmallVectorTest, ResizeGrowTest) {    theVector.resize(2); -  // XXX: I don't know where the extra construct/destruct is coming from. +  // The extra constructor/destructor calls come from the temporary object used +  // to initialize the contents of the resized array (via copy construction).    EXPECT_EQ(3, Constructable::getNumConstructorCalls());    EXPECT_EQ(1, Constructable::getNumDestructorCalls());    EXPECT_EQ(2u, theVector.size()); @@ -214,16 +215,16 @@ TEST_F(SmallVectorTest, ResizeFillTest) {  TEST_F(SmallVectorTest, OverflowTest) {    SCOPED_TRACE("OverflowTest"); -  // Push more elements than the fixed size +  // Push more elements than the fixed size.    makeSequence(theVector, 1, 10); -  // test size and values +  // Test size and values.    EXPECT_EQ(10u, theVector.size());    for (int i = 0; i < 10; ++i) {      EXPECT_EQ(i+1, theVector[i].getValue());    } -  // Now resize back to fixed size +  // Now resize back to fixed size.    theVector.resize(1);    assertValuesInOrder(theVector, 1u, 1); @@ -380,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()); +} +  }  | 
