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