mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-28 06:00:30 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264650 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3828f99ca5
commit
75f9dc9b05
@ -373,6 +373,9 @@ public:
|
||||
if (!Size || Size > Limit)
|
||||
Size = Limit;
|
||||
}
|
||||
|
||||
/// Return the Size, if known.
|
||||
uint64_t getSizeIfKnown() const { return Size; }
|
||||
};
|
||||
|
||||
/// When advancing through a bitstream cursor, each advance can discover a few
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user