summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ADT
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-06-17 12:46:13 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-06-17 12:46:13 +0000
commit23a9c3e09021585359011cdd03b45c6a90dd68dc (patch)
tree3748572874572209273a83cae9546bd43b86aef8 /llvm/unittests/ADT
parentb539b47793a828cc9bf4d0e824cd440822ba1c82 (diff)
downloadbcm5719-llvm-23a9c3e09021585359011cdd03b45c6a90dd68dc.tar.gz
bcm5719-llvm-23a9c3e09021585359011cdd03b45c6a90dd68dc.zip
Bring the return value of SmallVector::insert in line with std::vector::insert.
It always returns the iterator for the first inserted element, or the passed in iterator if the inserted range was empty. Flesh out the unit test more and fix all the cases it uncovered so far. llvm-svn: 158645
Diffstat (limited to 'llvm/unittests/ADT')
-rw-r--r--llvm/unittests/ADT/SmallVectorTest.cpp34
1 files changed, 30 insertions, 4 deletions
diff --git a/llvm/unittests/ADT/SmallVectorTest.cpp b/llvm/unittests/ADT/SmallVectorTest.cpp
index 8f6d2f4ac15..d35e5bc08a2 100644
--- a/llvm/unittests/ADT/SmallVectorTest.cpp
+++ b/llvm/unittests/ADT/SmallVectorTest.cpp
@@ -342,7 +342,9 @@ TEST_F(SmallVectorTest, InsertTest) {
SCOPED_TRACE("InsertTest");
makeSequence(theVector, 1, 3);
- theVector.insert(theVector.begin() + 1, Constructable(77));
+ VectorType::iterator I =
+ theVector.insert(theVector.begin() + 1, Constructable(77));
+ EXPECT_EQ(theVector.begin() + 1, I);
assertValuesInOrder(theVector, 4u, 1, 77, 2, 3);
}
@@ -351,24 +353,48 @@ TEST_F(SmallVectorTest, InsertRepeatedTest) {
SCOPED_TRACE("InsertRepeatedTest");
makeSequence(theVector, 10, 15);
- theVector.insert(theVector.begin() + 1, 2, Constructable(16));
+ VectorType::iterator I =
+ theVector.insert(theVector.begin() + 1, 2, Constructable(16));
+ EXPECT_EQ(theVector.begin() + 1, I);
assertValuesInOrder(theVector, 8u, 10, 16, 16, 11, 12, 13, 14, 15);
+ // Insert at end.
+ I = theVector.insert(theVector.end(), 2, Constructable(16));
+ EXPECT_EQ(theVector.begin() + 8, I);
+ assertValuesInOrder(theVector, 10u, 10, 16, 16, 11, 12, 13, 14, 15, 16, 16);
+
+ // Empty insert.
EXPECT_EQ(theVector.end(),
theVector.insert(theVector.end(), 0, Constructable(42)));
+ EXPECT_EQ(theVector.begin() + 1,
+ theVector.insert(theVector.begin() + 1, 0, Constructable(42)));
}
// Insert range.
TEST_F(SmallVectorTest, InsertRangeTest) {
- SCOPED_TRACE("InsertRepeatedTest");
+ SCOPED_TRACE("InsertRangeTest");
+
+ Constructable Arr[3] =
+ { Constructable(77), Constructable(77), Constructable(77) };
makeSequence(theVector, 1, 3);
- theVector.insert(theVector.begin() + 1, 3, Constructable(77));
+ VectorType::iterator I =
+ theVector.insert(theVector.begin() + 1, Arr, Arr+3);
+ EXPECT_EQ(theVector.begin() + 1, I);
assertValuesInOrder(theVector, 6u, 1, 77, 77, 77, 2, 3);
+ // Insert at end.
+ I = theVector.insert(theVector.end(), Arr, Arr+3);
+ EXPECT_EQ(theVector.begin() + 6, I);
+ assertValuesInOrder(theVector, 9u, 1, 77, 77, 77, 2, 3, 77, 77, 77);
+
+ // Empty insert.
EXPECT_EQ(theVector.end(), theVector.insert(theVector.end(),
theVector.begin(),
theVector.begin()));
+ EXPECT_EQ(theVector.begin() + 1, theVector.insert(theVector.begin() + 1,
+ theVector.begin(),
+ theVector.begin()));
}
// Comparison tests.
OpenPOWER on IntegriCloud