aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/ADT/ArrayRefTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/ADT/ArrayRefTest.cpp')
-rw-r--r--llvm/unittests/ADT/ArrayRefTest.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/ArrayRefTest.cpp b/llvm/unittests/ADT/ArrayRefTest.cpp
index 985db16..b5fc0a1 100644
--- a/llvm/unittests/ADT/ArrayRefTest.cpp
+++ b/llvm/unittests/ADT/ArrayRefTest.cpp
@@ -104,6 +104,48 @@ TEST(ArrayRefTest, DropFront) {
EXPECT_TRUE(AR1.drop_front(2).equals(AR2));
}
+TEST(ArrayRefTest, ConsumeFront) {
+ static const int TheNumbers[] = {4, 8, 15, 16, 23, 42};
+ ArrayRef<int> AR1(TheNumbers);
+ ArrayRef<int> AR2(&TheNumbers[2], AR1.size() - 2);
+ EXPECT_EQ(&AR1.consume_front(), &TheNumbers[0]);
+ EXPECT_EQ(&AR1.consume_front(), &TheNumbers[1]);
+ EXPECT_TRUE(AR1.equals(AR2));
+}
+
+TEST(ArrayRefTest, ConsumeBack) {
+ static const int TheNumbers[] = {4, 8, 15, 16, 23, 42};
+ ArrayRef<int> AR1(TheNumbers);
+ ArrayRef<int> AR2(TheNumbers, AR1.size() - 2);
+ EXPECT_EQ(&AR1.consume_back(), &TheNumbers[5]);
+ EXPECT_EQ(&AR1.consume_back(), &TheNumbers[4]);
+ EXPECT_TRUE(AR1.equals(AR2));
+}
+
+TEST(ArrayRefTest, MutableArryaRefConsumeFront) {
+ int TheNumbers[] = {4, 8, 15, 16, 23, 42};
+ MutableArrayRef<int> AR1(TheNumbers);
+ MutableArrayRef<int> AR2(&TheNumbers[2], AR1.size() - 2);
+ EXPECT_EQ(&AR1.consume_front(), &TheNumbers[0]);
+ EXPECT_EQ(&AR1.consume_front(), &TheNumbers[1]);
+ EXPECT_TRUE(AR1.equals(AR2));
+
+ AR1.consume_front() = 33;
+ EXPECT_EQ(TheNumbers[2], 33);
+}
+
+TEST(ArrayRefTest, MutableArryaRefConsumeBack) {
+ int TheNumbers[] = {4, 8, 15, 16, 23, 42};
+ MutableArrayRef<int> AR1(TheNumbers);
+ MutableArrayRef<int> AR2(TheNumbers, AR1.size() - 2);
+ EXPECT_EQ(&AR1.consume_back(), &TheNumbers[5]);
+ EXPECT_EQ(&AR1.consume_back(), &TheNumbers[4]);
+ EXPECT_TRUE(AR1.equals(AR2));
+
+ AR1.consume_back() = 33;
+ EXPECT_EQ(TheNumbers[3], 33);
+}
+
TEST(ArrayRefTest, DropWhile) {
static const int TheNumbers[] = {1, 3, 5, 8, 10, 11};
ArrayRef<int> AR1(TheNumbers);