1.1
|
(patrick 14-Jan-17)
| 1
|
: //===- BitstreamWriterTest.cpp - Tests for BitstreamWriter ----------------===//
|
1.1
|
(patrick 14-Jan-17)
| 2
|
: //
|
1.1
|
(patrick 14-Jan-17)
| 3
|
: // The LLVM Compiler Infrastructure
|
1.1
|
(patrick 14-Jan-17)
| 4
|
: //
|
1.1
|
(patrick 14-Jan-17)
| 5
|
: // This file is distributed under the University of Illinois Open Source
|
1.1
|
(patrick 14-Jan-17)
| 6
|
: // License. See LICENSE.TXT for details.
|
1.1
|
(patrick 14-Jan-17)
| 7
|
: //
|
1.1
|
(patrick 14-Jan-17)
| 8
|
: //===----------------------------------------------------------------------===//
|
1.1
|
(patrick 14-Jan-17)
| 9
|
:
|
1.1
|
(patrick 14-Jan-17)
| 10
|
: #include "llvm/ADT/STLExtras.h"
|
1.1
|
(patrick 14-Jan-17)
| 11
|
: #include "llvm/ADT/SmallString.h"
|
1.1
|
(patrick 14-Jan-17)
| 12
|
: #include "llvm/Bitcode/BitstreamWriter.h"
|
1.1
|
(patrick 14-Jan-17)
| 13
|
: #include "gtest/gtest.h"
|
1.1
|
(patrick 14-Jan-17)
| 14
|
:
|
1.1
|
(patrick 14-Jan-17)
| 15
|
: using namespace llvm;
|
1.1
|
(patrick 14-Jan-17)
| 16
|
:
|
1.1
|
(patrick 14-Jan-17)
| 17
|
: namespace {
|
1.1
|
(patrick 14-Jan-17)
| 18
|
:
|
1.1
|
(patrick 14-Jan-17)
| 19
|
: TEST(BitstreamWriterTest, emitBlob) {
|
1.1
|
(patrick 14-Jan-17)
| 20
|
: SmallString<64> Buffer;
|
1.1
|
(patrick 14-Jan-17)
| 21
|
: BitstreamWriter W(Buffer);
|
1.1
|
(patrick 14-Jan-17)
| 22
|
: W.emitBlob("str", /* ShouldEmitSize */ false);
|
1.1
|
(patrick 14-Jan-17)
| 23
|
: EXPECT_EQ(StringRef("str\0", 4), Buffer);
|
1.1
|
(patrick 14-Jan-17)
| 24
|
: }
|
1.1
|
(patrick 14-Jan-17)
| 25
|
:
|
1.1
|
(patrick 14-Jan-17)
| 26
|
: TEST(BitstreamWriterTest, emitBlobWithSize) {
|
1.1
|
(patrick 14-Jan-17)
| 27
|
: SmallString<64> Buffer;
|
1.1
|
(patrick 14-Jan-17)
| 28
|
: {
|
1.1
|
(patrick 14-Jan-17)
| 29
|
: BitstreamWriter W(Buffer);
|
1.1
|
(patrick 14-Jan-17)
| 30
|
: W.emitBlob("str");
|
1.1
|
(patrick 14-Jan-17)
| 31
|
: }
|
1.1
|
(patrick 14-Jan-17)
| 32
|
: SmallString<64> Expected;
|
1.1
|
(patrick 14-Jan-17)
| 33
|
: {
|
1.1
|
(patrick 14-Jan-17)
| 34
|
: BitstreamWriter W(Expected);
|
1.1
|
(patrick 14-Jan-17)
| 35
|
: W.EmitVBR(3, 6);
|
1.1
|
(patrick 14-Jan-17)
| 36
|
: W.FlushToWord();
|
1.1
|
(patrick 14-Jan-17)
| 37
|
: W.Emit('s', 8);
|
1.1
|
(patrick 14-Jan-17)
| 38
|
: W.Emit('t', 8);
|
1.1
|
(patrick 14-Jan-17)
| 39
|
: W.Emit('r', 8);
|
1.1
|
(patrick 14-Jan-17)
| 40
|
: W.Emit(0, 8);
|
1.1
|
(patrick 14-Jan-17)
| 41
|
: }
|
1.1
|
(patrick 14-Jan-17)
| 42
|
: EXPECT_EQ(StringRef(Expected), Buffer);
|
1.1
|
(patrick 14-Jan-17)
| 43
|
: }
|
1.1
|
(patrick 14-Jan-17)
| 44
|
:
|
1.1
|
(patrick 14-Jan-17)
| 45
|
: TEST(BitstreamWriterTest, emitBlobEmpty) {
|
1.1
|
(patrick 14-Jan-17)
| 46
|
: SmallString<64> Buffer;
|
1.1
|
(patrick 14-Jan-17)
| 47
|
: BitstreamWriter W(Buffer);
|
1.1
|
(patrick 14-Jan-17)
| 48
|
: W.emitBlob("", /* ShouldEmitSize */ false);
|
1.1
|
(patrick 14-Jan-17)
| 49
|
: EXPECT_EQ(StringRef(""), Buffer);
|
1.1
|
(patrick 14-Jan-17)
| 50
|
: }
|
1.1
|
(patrick 14-Jan-17)
| 51
|
:
|
1.1
|
(patrick 14-Jan-17)
| 52
|
: TEST(BitstreamWriterTest, emitBlob4ByteAligned) {
|
1.1
|
(patrick 14-Jan-17)
| 53
|
: SmallString<64> Buffer;
|
1.1
|
(patrick 14-Jan-17)
| 54
|
: BitstreamWriter W(Buffer);
|
1.1
|
(patrick 14-Jan-17)
| 55
|
: W.emitBlob("str0", /* ShouldEmitSize */ false);
|
1.1
|
(patrick 14-Jan-17)
| 56
|
: EXPECT_EQ(StringRef("str0"), Buffer);
|
1.1
|
(patrick 14-Jan-17)
| 57
|
: }
|
1.1
|
(patrick 14-Jan-17)
| 58
|
:
|
1.1
|
(patrick 14-Jan-17)
| 59
|
: } // end namespace
|