diff options
author | Zachary Turner <zturner@google.com> | 2017-01-20 22:41:15 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2017-01-20 22:41:15 +0000 |
commit | f04d6e8d52719d64dddd95e86577d61ad1f4f074 (patch) | |
tree | d765c15bfc5e6603fffa8d08a825c597e7fa212c /llvm/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp | |
parent | 6f16ac1473e5e7df1fce4210716851dea9f58a1e (diff) | |
download | bcm5719-llvm-f04d6e8d52719d64dddd95e86577d61ad1f4f074.tar.gz bcm5719-llvm-f04d6e8d52719d64dddd95e86577d61ad1f4f074.zip |
[PDB] Rename some files to be more intuitive.
llvm-svn: 292663
Diffstat (limited to 'llvm/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp')
-rw-r--r-- | llvm/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/llvm/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp b/llvm/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp new file mode 100644 index 00000000000..aa4ab665fdb --- /dev/null +++ b/llvm/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp @@ -0,0 +1,54 @@ +//===- StringTableBuilderTest.cpp -----------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "ErrorChecking.h" + +#include "llvm/DebugInfo/MSF/ByteStream.h" +#include "llvm/DebugInfo/MSF/StreamReader.h" +#include "llvm/DebugInfo/MSF/StreamWriter.h" +#include "llvm/DebugInfo/PDB/Raw/StringTable.h" +#include "llvm/DebugInfo/PDB/Raw/StringTableBuilder.h" + +#include "gtest/gtest.h" + +using namespace llvm; +using namespace llvm::pdb; + +namespace { +class StringTableBuilderTest : public ::testing::Test {}; +} + +TEST_F(StringTableBuilderTest, Simple) { + // Create /names table contents. + StringTableBuilder Builder; + EXPECT_EQ(1U, Builder.insert("foo")); + EXPECT_EQ(5U, Builder.insert("bar")); + EXPECT_EQ(1U, Builder.insert("foo")); + EXPECT_EQ(9U, Builder.insert("baz")); + + std::vector<uint8_t> Buffer(Builder.calculateSerializedLength()); + msf::MutableByteStream OutStream(Buffer); + msf::StreamWriter Writer(OutStream); + EXPECT_NO_ERROR(Builder.commit(Writer)); + + // Reads the contents back. + msf::ByteStream InStream(Buffer); + msf::StreamReader Reader(InStream); + StringTable Table; + EXPECT_NO_ERROR(Table.load(Reader)); + + EXPECT_EQ(3U, Table.getNameCount()); + EXPECT_EQ(1U, Table.getHashVersion()); + EXPECT_EQ("foo", Table.getStringForID(1)); + EXPECT_EQ("bar", Table.getStringForID(5)); + EXPECT_EQ("baz", Table.getStringForID(9)); + EXPECT_EQ(1U, Table.getIDForString("foo")); + EXPECT_EQ(5U, Table.getIDForString("bar")); + EXPECT_EQ(9U, Table.getIDForString("baz")); +} |