Home | History | Annotate | Download | only in Bitcode
      1 //===- BitstreamReaderTest.cpp - Tests for BitstreamReader ----------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #include "llvm/Bitcode/BitstreamReader.h"
     11 #include "gtest/gtest.h"
     12 
     13 using namespace llvm;
     14 
     15 namespace {
     16 
     17 TEST(BitstreamReaderTest, AtEndOfStream) {
     18   uint8_t Bytes[4] = {
     19     0x00, 0x01, 0x02, 0x03
     20   };
     21   BitstreamReader Reader(std::begin(Bytes), std::end(Bytes));
     22   BitstreamCursor Cursor(Reader);
     23 
     24   EXPECT_FALSE(Cursor.AtEndOfStream());
     25   (void)Cursor.Read(8);
     26   EXPECT_FALSE(Cursor.AtEndOfStream());
     27   (void)Cursor.Read(24);
     28   EXPECT_TRUE(Cursor.AtEndOfStream());
     29 
     30   Cursor.JumpToBit(0);
     31   EXPECT_FALSE(Cursor.AtEndOfStream());
     32 
     33   Cursor.JumpToBit(32);
     34   EXPECT_TRUE(Cursor.AtEndOfStream());
     35 }
     36 
     37 TEST(BitstreamReaderTest, AtEndOfStreamJump) {
     38   uint8_t Bytes[4] = {
     39     0x00, 0x01, 0x02, 0x03
     40   };
     41   BitstreamReader Reader(std::begin(Bytes), std::end(Bytes));
     42   BitstreamCursor Cursor(Reader);
     43 
     44   Cursor.JumpToBit(32);
     45   EXPECT_TRUE(Cursor.AtEndOfStream());
     46 }
     47 
     48 TEST(BitstreamReaderTest, AtEndOfStreamEmpty) {
     49   uint8_t Dummy = 0xFF;
     50   BitstreamReader Reader(&Dummy, &Dummy);
     51   BitstreamCursor Cursor(Reader);
     52 
     53   EXPECT_TRUE(Cursor.AtEndOfStream());
     54 }
     55 
     56 } // end anonymous namespace
     57