mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 19:23:23 +01:00
972459e6ed
This moves Bitcode/Bitstream*, Bitcode/BitCodes.h to Bitstream/. This is needed to avoid a circular dependency when using the bitstream code for parsing optimization remarks. Since Bitcode uses Core for the IR part: libLLVMRemarks -> Bitcode -> Core and Core uses libLLVMRemarks to generate remarks (see IR/RemarkStreamer.cpp): Core -> libLLVMRemarks we need to separate the Bitstream and Bitcode part. For clang-doc, it seems that it doesn't need the whole bitcode layer, so I updated the CMake to only use the bitstream part. Differential Revision: https://reviews.llvm.org/D63899 llvm-svn: 365091
59 lines
1.5 KiB
C++
59 lines
1.5 KiB
C++
//===- BitstreamWriterTest.cpp - Tests for BitstreamWriter ----------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/Bitstream/BitstreamWriter.h"
|
|
#include "llvm/ADT/STLExtras.h"
|
|
#include "llvm/ADT/SmallString.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
using namespace llvm;
|
|
|
|
namespace {
|
|
|
|
TEST(BitstreamWriterTest, emitBlob) {
|
|
SmallString<64> Buffer;
|
|
BitstreamWriter W(Buffer);
|
|
W.emitBlob("str", /* ShouldEmitSize */ false);
|
|
EXPECT_EQ(StringRef("str\0", 4), Buffer);
|
|
}
|
|
|
|
TEST(BitstreamWriterTest, emitBlobWithSize) {
|
|
SmallString<64> Buffer;
|
|
{
|
|
BitstreamWriter W(Buffer);
|
|
W.emitBlob("str");
|
|
}
|
|
SmallString<64> Expected;
|
|
{
|
|
BitstreamWriter W(Expected);
|
|
W.EmitVBR(3, 6);
|
|
W.FlushToWord();
|
|
W.Emit('s', 8);
|
|
W.Emit('t', 8);
|
|
W.Emit('r', 8);
|
|
W.Emit(0, 8);
|
|
}
|
|
EXPECT_EQ(StringRef(Expected), Buffer);
|
|
}
|
|
|
|
TEST(BitstreamWriterTest, emitBlobEmpty) {
|
|
SmallString<64> Buffer;
|
|
BitstreamWriter W(Buffer);
|
|
W.emitBlob("", /* ShouldEmitSize */ false);
|
|
EXPECT_EQ(StringRef(""), Buffer);
|
|
}
|
|
|
|
TEST(BitstreamWriterTest, emitBlob4ByteAligned) {
|
|
SmallString<64> Buffer;
|
|
BitstreamWriter W(Buffer);
|
|
W.emitBlob("str0", /* ShouldEmitSize */ false);
|
|
EXPECT_EQ(StringRef("str0"), Buffer);
|
|
}
|
|
|
|
} // end namespace
|