aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Bitcode/BitstreamReaderTest.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2016-03-28 20:39:41 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2016-03-28 20:39:41 +0000
commit56d1fea6afc3f469dcb33334dd31623c56ca715e (patch)
tree5a72c610708aaa2a3fb5a029d9b9fa2b621af730 /llvm/unittests/Bitcode/BitstreamReaderTest.cpp
parenta023f79db19dae6c42ce4240e85630510c20ac91 (diff)
downloadllvm-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.cpp8
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) {