summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-01-20 22:41:15 +0000
committerZachary Turner <zturner@google.com>2017-01-20 22:41:15 +0000
commitf04d6e8d52719d64dddd95e86577d61ad1f4f074 (patch)
treed765c15bfc5e6603fffa8d08a825c597e7fa212c /llvm/unittests/DebugInfo/PDB/StringTableBuilderTest.cpp
parent6f16ac1473e5e7df1fce4210716851dea9f58a1e (diff)
downloadbcm5719-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.cpp54
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"));
+}
OpenPOWER on IntegriCloud