diff options
| author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-03-28 20:39:41 +0000 |
|---|---|---|
| committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2016-03-28 20:39:41 +0000 |
| commit | 56d1fea6afc3f469dcb33334dd31623c56ca715e (patch) | |
| tree | 5a72c610708aaa2a3fb5a029d9b9fa2b621af730 /llvm/unittests/Bitcode/BitstreamReaderTest.cpp | |
| parent | a023f79db19dae6c42ce4240e85630510c20ac91 (diff) | |
| download | llvm-56d1fea6afc3f469dcb33334dd31623c56ca715e.zip llvm-56d1fea6afc3f469dcb33334dd31623c56ca715e.tar.gz llvm-56d1fea6afc3f469dcb33334dd31623c56ca715e.tar.bz2 | |
Explicitly test BitstreamReader::setArtificialByteLimit, NFC
Explicitly check that artificial byte limit is rounded correctly by
exposing BitstreamReader::Size through a new accessor, getSizeIfKnown.
The original code for rounding (from r264547) wasn't obviously correct,
and even though r264623 cleaned it up (by calling llvm::alignTo) I think
it's worth testing.
llvm-svn: 264650
Diffstat (limited to 'llvm/unittests/Bitcode/BitstreamReaderTest.cpp')
| -rw-r--r-- | llvm/unittests/Bitcode/BitstreamReaderTest.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/unittests/Bitcode/BitstreamReaderTest.cpp b/llvm/unittests/Bitcode/BitstreamReaderTest.cpp index c99239b48..2be774c 100644 --- a/llvm/unittests/Bitcode/BitstreamReaderTest.cpp +++ b/llvm/unittests/Bitcode/BitstreamReaderTest.cpp @@ -121,6 +121,7 @@ TEST(BitstreamReaderTest, setArtificialByteLimit) { SimpleBitstreamCursor Cursor(Reader); Cursor.setArtificialByteLimit(8); + EXPECT_EQ(8u, Cursor.getSizeIfKnown()); while (!Cursor.AtEndOfStream()) (void)Cursor.Read(1); @@ -134,6 +135,7 @@ TEST(BitstreamReaderTest, setArtificialByteLimitNotWordBoundary) { SimpleBitstreamCursor Cursor(Reader); Cursor.setArtificialByteLimit(5); + EXPECT_EQ(8u, Cursor.getSizeIfKnown()); while (!Cursor.AtEndOfStream()) (void)Cursor.Read(1); @@ -148,11 +150,13 @@ TEST(BitstreamReaderTest, setArtificialByteLimitPastTheEnd) { // The size of the memory object isn't known yet. Set it too high and // confirm that we don't read too far. - Cursor.setArtificialByteLimit(20); + Cursor.setArtificialByteLimit(24); + EXPECT_EQ(24u, Cursor.getSizeIfKnown()); while (!Cursor.AtEndOfStream()) (void)Cursor.Read(1); EXPECT_EQ(12u, Cursor.getCurrentByteNo()); + EXPECT_EQ(12u, Cursor.getSizeIfKnown()); } TEST(BitstreamReaderTest, setArtificialByteLimitPastTheEndKnown) { @@ -165,9 +169,11 @@ TEST(BitstreamReaderTest, setArtificialByteLimitPastTheEndKnown) { while (!Cursor.AtEndOfStream()) (void)Cursor.Read(1); EXPECT_EQ(12u, Cursor.getCurrentByteNo()); + EXPECT_EQ(12u, Cursor.getSizeIfKnown()); Cursor.setArtificialByteLimit(20); EXPECT_TRUE(Cursor.AtEndOfStream()); + EXPECT_EQ(12u, Cursor.getSizeIfKnown()); } TEST(BitstreamReaderTest, readRecordWithBlobWhileStreaming) { |
