From b5630dbadf9a2a06754194387d6b0fd9962a67f1 Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Mon, 22 May 2017 19:43:28 +0000 Subject: Vendor import of llvm trunk r303571: https://llvm.org/svn/llvm-project/llvm/trunk@303571 --- unittests/Support/BinaryStreamTest.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'unittests/Support/BinaryStreamTest.cpp') diff --git a/unittests/Support/BinaryStreamTest.cpp b/unittests/Support/BinaryStreamTest.cpp index ec3b0effc9e9a..1ce74cbb722b1 100644 --- a/unittests/Support/BinaryStreamTest.cpp +++ b/unittests/Support/BinaryStreamTest.cpp @@ -289,6 +289,39 @@ TEST_F(BinaryStreamTest, StreamRefBounds) { } } +TEST_F(BinaryStreamTest, DropOperations) { + std::vector InputData = {1, 2, 3, 4, 5, 4, 3, 2, 1}; + auto RefData = makeArrayRef(InputData); + initializeInput(InputData, 1); + + ArrayRef Result; + BinaryStreamRef Original(InputData, support::little); + ASSERT_EQ(InputData.size(), Original.getLength()); + + EXPECT_NO_ERROR(Original.readBytes(0, InputData.size(), Result)); + EXPECT_EQ(RefData, Result); + + auto Dropped = Original.drop_front(2); + EXPECT_NO_ERROR(Dropped.readBytes(0, Dropped.getLength(), Result)); + EXPECT_EQ(RefData.drop_front(2), Result); + + Dropped = Original.drop_back(2); + EXPECT_NO_ERROR(Dropped.readBytes(0, Dropped.getLength(), Result)); + EXPECT_EQ(RefData.drop_back(2), Result); + + Dropped = Original.keep_front(2); + EXPECT_NO_ERROR(Dropped.readBytes(0, Dropped.getLength(), Result)); + EXPECT_EQ(RefData.take_front(2), Result); + + Dropped = Original.keep_back(2); + EXPECT_NO_ERROR(Dropped.readBytes(0, Dropped.getLength(), Result)); + EXPECT_EQ(RefData.take_back(2), Result); + + Dropped = Original.drop_symmetric(2); + EXPECT_NO_ERROR(Dropped.readBytes(0, Dropped.getLength(), Result)); + EXPECT_EQ(RefData.drop_front(2).drop_back(2), Result); +} + // Test that we can write to a BinaryStream without a StreamWriter. TEST_F(BinaryStreamTest, MutableBinaryByteStreamBounds) { std::vector InputData = {'T', 'e', 's', 't', '\0'}; -- cgit v1.2.3