diff options
Diffstat (limited to 'unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp')
-rw-r--r-- | unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp | 51 |
1 files changed, 25 insertions, 26 deletions
diff --git a/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp b/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp index 9f8940b77f28..9d90e265df33 100644 --- a/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp +++ b/unittests/DebugInfo/PDB/MappedBlockStreamTest.cpp @@ -75,12 +75,19 @@ private: MutableArrayRef<uint8_t> Data; }; +TEST(MappedBlockStreamTest, NumBlocks) { + DiscontiguousStream F(BlocksAry, DataAry); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); + EXPECT_EQ(F.block_size(), S->getBlockSize()); + EXPECT_EQ(F.layout().Blocks.size(), S->getNumBlocks()); + +} + // Tests that a read which is entirely contained within a single block works // and does not allocate. TEST(MappedBlockStreamTest, ReadBeyondEndOfStreamRef) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); BinaryStreamRef SR; @@ -95,8 +102,7 @@ TEST(MappedBlockStreamTest, ReadBeyondEndOfStreamRef) { // does not fail due to the length of the output buffer. TEST(MappedBlockStreamTest, ReadOntoNonEmptyBuffer) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str = "ZYXWVUTSRQPONMLKJIHGFEDCBA"; @@ -110,7 +116,7 @@ TEST(MappedBlockStreamTest, ReadOntoNonEmptyBuffer) { // not allocate memory. TEST(MappedBlockStreamTest, ZeroCopyReadContiguousBreak) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str; @@ -129,8 +135,7 @@ TEST(MappedBlockStreamTest, ZeroCopyReadContiguousBreak) { // requested. TEST(MappedBlockStreamTest, CopyReadNonContiguousBreak) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str; EXPECT_NO_ERROR(R.readFixedString(Str, 10)); @@ -142,8 +147,7 @@ TEST(MappedBlockStreamTest, CopyReadNonContiguousBreak) { // fails and allocates no memory. TEST(MappedBlockStreamTest, InvalidReadSizeNoBreak) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str; @@ -156,8 +160,7 @@ TEST(MappedBlockStreamTest, InvalidReadSizeNoBreak) { // fails and allocates no memory. TEST(MappedBlockStreamTest, InvalidReadSizeContiguousBreak) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str; @@ -170,8 +173,7 @@ TEST(MappedBlockStreamTest, InvalidReadSizeContiguousBreak) { // boundary fails and allocates no memory. TEST(MappedBlockStreamTest, InvalidReadSizeNonContiguousBreak) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str; @@ -183,8 +185,7 @@ TEST(MappedBlockStreamTest, InvalidReadSizeNonContiguousBreak) { // beyond the end of a StreamRef fails. TEST(MappedBlockStreamTest, ZeroCopyReadNoBreak) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str; EXPECT_NO_ERROR(R.readFixedString(Str, 1)); @@ -197,8 +198,7 @@ TEST(MappedBlockStreamTest, ZeroCopyReadNoBreak) { // previous allocation. TEST(MappedBlockStreamTest, UnalignedOverlappingRead) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str1; StringRef Str2; @@ -218,8 +218,7 @@ TEST(MappedBlockStreamTest, UnalignedOverlappingRead) { // still works correctly and allocates again from the shared pool. TEST(MappedBlockStreamTest, UnalignedOverlappingReadFail) { DiscontiguousStream F(BlocksAry, DataAry); - auto S = MappedBlockStream::createStream(F.block_size(), F.block_count(), - F.layout(), F); + auto S = MappedBlockStream::createStream(F.block_size(), F.layout(), F); BinaryStreamReader R(*S); StringRef Str1; StringRef Str2; @@ -243,7 +242,7 @@ TEST(MappedBlockStreamTest, WriteBeyondEndOfStream) { DiscontiguousStream F(BlocksAry, Data); auto S = WritableMappedBlockStream::createStream( - F.block_size(), F.block_count(), F.layout(), F); + F.block_size(), F.layout(), F); ArrayRef<uint8_t> Buffer; EXPECT_ERROR(S->writeBytes(0, ArrayRef<uint8_t>(LargeBuffer))); @@ -256,7 +255,7 @@ TEST(MappedBlockStreamTest, TestWriteBytesNoBreakBoundary) { static uint8_t Data[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}; DiscontiguousStream F(BlocksAry, Data); auto S = WritableMappedBlockStream::createStream( - F.block_size(), F.block_count(), F.layout(), F); + F.block_size(), F.layout(), F); ArrayRef<uint8_t> Buffer; EXPECT_NO_ERROR(S->readBytes(0, 1, Buffer)); @@ -289,7 +288,7 @@ TEST(MappedBlockStreamTest, TestWriteBytesBreakBoundary) { DiscontiguousStream F(BlocksAry, Data); auto S = WritableMappedBlockStream::createStream( - F.block_size(), F.block_count(), F.layout(), F); + F.block_size(), F.layout(), F); ArrayRef<uint8_t> Buffer; EXPECT_NO_ERROR(S->writeBytes(0, TestData)); @@ -308,7 +307,7 @@ TEST(MappedBlockStreamTest, TestWriteThenRead) { DiscontiguousStream F(Blocks, Data); auto S = WritableMappedBlockStream::createStream( - F.block_size(), F.block_count(), F.layout(), F); + F.block_size(), F.layout(), F); enum class MyEnum : uint32_t { Val1 = 2908234, Val2 = 120891234 }; using support::ulittle32_t; @@ -400,7 +399,7 @@ TEST(MappedBlockStreamTest, TestWriteContiguousStreamRef) { DiscontiguousStream F(DestBlocks, DestData); auto DestStream = WritableMappedBlockStream::createStream( - F.block_size(), F.block_count(), F.layout(), F); + F.block_size(), F.layout(), F); // First write "Test Str" into the source stream. MutableBinaryByteStream SourceStream(SrcData, little); @@ -435,9 +434,9 @@ TEST(MappedBlockStreamTest, TestWriteDiscontiguousStreamRef) { DiscontiguousStream SrcF(SrcBlocks, SrcData); auto Dest = WritableMappedBlockStream::createStream( - DestF.block_size(), DestF.block_count(), DestF.layout(), DestF); + DestF.block_size(), DestF.layout(), DestF); auto Src = WritableMappedBlockStream::createStream( - SrcF.block_size(), SrcF.block_count(), SrcF.layout(), SrcF); + SrcF.block_size(), SrcF.layout(), SrcF); // First write "Test Str" into the source stream. BinaryStreamWriter SourceWriter(*Src); |