diff options
Diffstat (limited to 'llvm/unittests/MC/StringTableBuilderTest.cpp')
-rw-r--r-- | llvm/unittests/MC/StringTableBuilderTest.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/llvm/unittests/MC/StringTableBuilderTest.cpp b/llvm/unittests/MC/StringTableBuilderTest.cpp index 4cc0bda0a03..f78d3588fff 100644 --- a/llvm/unittests/MC/StringTableBuilderTest.cpp +++ b/llvm/unittests/MC/StringTableBuilderTest.cpp @@ -68,4 +68,27 @@ TEST(StringTableBuilderTest, BasicWinCOFF) { EXPECT_EQ(23U, B.getOffset("river horse")); } +TEST(StringTableBuilderTest, ELFInOrder) { + StringTableBuilder B(StringTableBuilder::ELF); + EXPECT_EQ(1U, B.add("foo")); + EXPECT_EQ(5U, B.add("bar")); + EXPECT_EQ(9U, B.add("foobar")); + + B.finalizeInOrder(); + + std::string Expected; + Expected += '\x00'; + Expected += "foo"; + Expected += '\x00'; + Expected += "bar"; + Expected += '\x00'; + Expected += "foobar"; + Expected += '\x00'; + + EXPECT_EQ(Expected, B.data()); + EXPECT_EQ(1U, B.getOffset("foo")); + EXPECT_EQ(5U, B.getOffset("bar")); + EXPECT_EQ(9U, B.getOffset("foobar")); +} + } |