1//===----------- StringTableBuilderTest.cpp -------------------------------===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#include "llvm/MC/StringTableBuilder.h" 11#include "gtest/gtest.h" 12#include <string> 13 14using namespace llvm; 15 16namespace { 17 18TEST(StringTableBuilderTest, Basic) { 19 StringTableBuilder B; 20 21 B.add("foo"); 22 B.add("bar"); 23 B.add("foobar"); 24 25 B.finalize(); 26 27 std::string Expected; 28 Expected += '\x00'; 29 Expected += "foobar"; 30 Expected += '\x00'; 31 Expected += "foo"; 32 Expected += '\x00'; 33 34 EXPECT_EQ(Expected, B.data()); 35 EXPECT_EQ(1U, B.getOffset("foobar")); 36 EXPECT_EQ(4U, B.getOffset("bar")); 37 EXPECT_EQ(8U, B.getOffset("foo")); 38} 39 40} 41