1affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===- NamePoolTest.cpp ---------------------------------------------------===// 2affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 3affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// The MCLinker Project 4affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 5affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// This file is distributed under the University of Illinois Open Source 6affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// License. See LICENSE.TXT for details. 7affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 8affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//===----------------------------------------------------------------------===// 9affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include "NamePoolTest.h" 10affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/NamePool.h> 11affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/Resolver.h> 12affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/StaticResolver.h> 13affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/ResolveInfo.h> 14affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <mcld/LD/LDSymbol.h> 15affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <llvm/ADT/StringRef.h> 16affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <string> 17affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#include <cstdio> 18affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 19affc150dc44fab1911775a49636d0ce85333b634Zonr Changusing namespace mcld; 20affc150dc44fab1911775a49636d0ce85333b634Zonr Changusing namespace mcldtest; 21affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 22affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 23affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// Constructor can do set-up work for all test here. 24affc150dc44fab1911775a49636d0ce85333b634Zonr ChangNamePoolTest::NamePoolTest() 25affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 26affc150dc44fab1911775a49636d0ce85333b634Zonr Chang // create testee. modify it if need 27affc150dc44fab1911775a49636d0ce85333b634Zonr Chang StaticResolver resolver; 28affc150dc44fab1911775a49636d0ce85333b634Zonr Chang m_pTestee = new NamePool(resolver, 10); 29affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 30affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 31affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// Destructor can do clean-up work that doesn't throw exceptions here. 32affc150dc44fab1911775a49636d0ce85333b634Zonr ChangNamePoolTest::~NamePoolTest() 33affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 34affc150dc44fab1911775a49636d0ce85333b634Zonr Chang delete m_pTestee; 35affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 36affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// SetUp() will be called immediately before each test. 38affc150dc44fab1911775a49636d0ce85333b634Zonr Changvoid NamePoolTest::SetUp() 39affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 40affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 41affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 42affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// TearDown() will be called immediately after each test. 43affc150dc44fab1911775a49636d0ce85333b634Zonr Changvoid NamePoolTest::TearDown() 44affc150dc44fab1911775a49636d0ce85333b634Zonr Chang{ 45affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 46affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 47affc150dc44fab1911775a49636d0ce85333b634Zonr Chang//==========================================================================// 48affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// Testcases 49affc150dc44fab1911775a49636d0ce85333b634Zonr Chang// 50affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 51affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 52affc150dc44fab1911775a49636d0ce85333b634Zonr ChangTEST_F( NamePoolTest, insertString ) { 53affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const char *s1 = "Hello MCLinker"; 54affc150dc44fab1911775a49636d0ce85333b634Zonr Chang llvm::StringRef result1 = m_pTestee->insertString(s1); 55affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_NE(s1, result1.data()); 56affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_STREQ(s1, result1.data()); 57affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 58affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 59affc150dc44fab1911775a49636d0ce85333b634Zonr ChangTEST_F( NamePoolTest, insertSameString ) { 60affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const char *s1 = "Hello MCLinker"; 61affc150dc44fab1911775a49636d0ce85333b634Zonr Chang std::string s2(s1); 62affc150dc44fab1911775a49636d0ce85333b634Zonr Chang llvm::StringRef result1 = m_pTestee->insertString(s1); 63affc150dc44fab1911775a49636d0ce85333b634Zonr Chang llvm::StringRef result2 = m_pTestee->insertString(s2.c_str()); 64affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_STREQ(s1, result1.data()); 65affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_STREQ(s2.c_str(), result2.data()); 66affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(result1.data(), result2.data()); 67affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 68affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 69affc150dc44fab1911775a49636d0ce85333b634Zonr ChangTEST_F( NamePoolTest, insert_local_defined_Symbol ) { 70affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const char *name = "Hello MCLinker"; 71affc150dc44fab1911775a49636d0ce85333b634Zonr Chang bool isDyn = false; 72affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ResolveInfo::Type type = ResolveInfo::Function; 73affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ResolveInfo::Desc desc = ResolveInfo::Define; 74affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ResolveInfo::Binding binding = ResolveInfo::Local; 75affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint64_t value = 0; 76affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint64_t size = 0; 77affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ResolveInfo::Visibility other = ResolveInfo::Default; 78affc150dc44fab1911775a49636d0ce85333b634Zonr Chang Resolver::Result result1; 79affc150dc44fab1911775a49636d0ce85333b634Zonr Chang m_pTestee->insertSymbol(name, 80affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 81affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 82affc150dc44fab1911775a49636d0ce85333b634Zonr Chang desc, 83affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 84affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 85affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other, 86affc150dc44fab1911775a49636d0ce85333b634Zonr Chang NULL, 87affc150dc44fab1911775a49636d0ce85333b634Zonr Chang result1); 88affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 89affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_NE(name, result1.info->name()); 90affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_STREQ(name, result1.info->name()); 91affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(isDyn, result1.info->isDyn()); 92affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(type, result1.info->type()); 93affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(desc, result1.info->desc()); 94affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(binding, result1.info->binding()); 95affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(size, result1.info->size()); 96affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(other, result1.info->visibility()); 97affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 98affc150dc44fab1911775a49636d0ce85333b634Zonr Chang Resolver::Result result2; 99affc150dc44fab1911775a49636d0ce85333b634Zonr Chang m_pTestee->insertSymbol(name, 100affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 101affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 102affc150dc44fab1911775a49636d0ce85333b634Zonr Chang desc, 103affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 104affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 105affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other, 106affc150dc44fab1911775a49636d0ce85333b634Zonr Chang NULL, 107affc150dc44fab1911775a49636d0ce85333b634Zonr Chang result2); 108affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 109affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_NE(name, result1.info->name()); 110affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_STREQ(name, result1.info->name()); 111affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(isDyn, result1.info->isDyn()); 112affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(type, result1.info->type()); 113affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(desc, result1.info->desc()); 114affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(binding, result1.info->binding()); 115affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(size, result1.info->size()); 116affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(other, result1.info->visibility()); 117affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 118affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_NE(result1.existent, result2.existent); 119affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 120affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 121affc150dc44fab1911775a49636d0ce85333b634Zonr ChangTEST_F( NamePoolTest, insert_global_reference_Symbol ) { 122affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const char *name = "Hello MCLinker"; 123affc150dc44fab1911775a49636d0ce85333b634Zonr Chang bool isDyn = false; 124affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ResolveInfo::Type type = ResolveInfo::NoType; 125affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ResolveInfo::Desc desc = ResolveInfo::Undefined; 126affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ResolveInfo::Binding binding = ResolveInfo::Global; 127affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint64_t size = 0; 128affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ResolveInfo::Visibility other = ResolveInfo::Default; 129affc150dc44fab1911775a49636d0ce85333b634Zonr Chang Resolver::Result result1; 130affc150dc44fab1911775a49636d0ce85333b634Zonr Chang m_pTestee->insertSymbol(name, 131affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 132affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 133affc150dc44fab1911775a49636d0ce85333b634Zonr Chang desc, 134affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 135affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 136affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other, 137affc150dc44fab1911775a49636d0ce85333b634Zonr Chang NULL, 138affc150dc44fab1911775a49636d0ce85333b634Zonr Chang result1); 139affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 140affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_NE(name, result1.info->name()); 141affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_STREQ(name, result1.info->name()); 142affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(isDyn, result1.info->isDyn()); 143affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(type, result1.info->type()); 144affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(desc, result1.info->desc()); 145affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(binding, result1.info->binding()); 146affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(size, result1.info->size()); 147affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(other, result1.info->visibility()); 148affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 149affc150dc44fab1911775a49636d0ce85333b634Zonr Chang Resolver::Result result2; 150affc150dc44fab1911775a49636d0ce85333b634Zonr Chang m_pTestee->insertSymbol(name, 151affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 152affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 153affc150dc44fab1911775a49636d0ce85333b634Zonr Chang desc, 154affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 155affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 156affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other, 157affc150dc44fab1911775a49636d0ce85333b634Zonr Chang NULL, 158affc150dc44fab1911775a49636d0ce85333b634Zonr Chang result2); 159affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 160affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(result1.info, result2.info); 161affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 162affc150dc44fab1911775a49636d0ce85333b634Zonr Chang Resolver::Result result3; 163affc150dc44fab1911775a49636d0ce85333b634Zonr Chang m_pTestee->insertSymbol("Different Symbol", 164affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 165affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 166affc150dc44fab1911775a49636d0ce85333b634Zonr Chang desc, 167affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 168affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 169affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other, 170affc150dc44fab1911775a49636d0ce85333b634Zonr Chang NULL, 171affc150dc44fab1911775a49636d0ce85333b634Zonr Chang result3); 172affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 173affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 174affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_NE(result1.info, result3.info); 175affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 176affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 177affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 178affc150dc44fab1911775a49636d0ce85333b634Zonr ChangTEST_F( NamePoolTest, insertSymbol_after_insert_same_string ) { 179affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const char *name = "Hello MCLinker"; 180affc150dc44fab1911775a49636d0ce85333b634Zonr Chang bool isDyn = false; 181affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSymbol::Type type = LDSymbol::Defined; 182affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSymbol::Binding binding = LDSymbol::Global; 183affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const llvm::MCSectionData *section = 0; 184affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint64_t value = 0; 185affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint64_t size = 0; 186affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint8_t other = 0; 187affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 188affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const char *result1 = m_pTestee->insertString(name); 189affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSymbol *sym = m_pTestee->insertSymbol(name, 190affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 191affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 192affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 193affc150dc44fab1911775a49636d0ce85333b634Zonr Chang section, 194affc150dc44fab1911775a49636d0ce85333b634Zonr Chang value, 195affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 196affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other); 197affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 198affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_STREQ(name, sym->name()); 199affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(result1, sym->name()); 200affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 201affc150dc44fab1911775a49636d0ce85333b634Zonr Chang char s[16]; 202affc150dc44fab1911775a49636d0ce85333b634Zonr Chang strcpy(s, result1); 203affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const char *result2 = m_pTestee->insertString(result1); 204affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const char *result3 = m_pTestee->insertString(s); 205affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 206affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(result1, result2); 207affc150dc44fab1911775a49636d0ce85333b634Zonr Chang EXPECT_EQ(result1, result3); 208affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 209affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 210affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 211affc150dc44fab1911775a49636d0ce85333b634Zonr ChangTEST_F( NamePoolTest, insert_16384_weak_reference_symbols ) { 212affc150dc44fab1911775a49636d0ce85333b634Zonr Chang char name[16]; 213affc150dc44fab1911775a49636d0ce85333b634Zonr Chang bool isDyn = false; 214affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSymbol::Type type = LDSymbol::Reference; 215affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSymbol::Binding binding = LDSymbol::Weak; 216affc150dc44fab1911775a49636d0ce85333b634Zonr Chang const llvm::MCSectionData *section = 0; 217affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint64_t value = 0; 218affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint64_t size = 0; 219affc150dc44fab1911775a49636d0ce85333b634Zonr Chang uint8_t other = 0; 220affc150dc44fab1911775a49636d0ce85333b634Zonr Chang strcpy(name, "Hello MCLinker"); 221affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSymbol *syms[128][128]; 222affc150dc44fab1911775a49636d0ce85333b634Zonr Chang for(int i=0; i<128 ;++i) { 223affc150dc44fab1911775a49636d0ce85333b634Zonr Chang name[0] = i; 224affc150dc44fab1911775a49636d0ce85333b634Zonr Chang for(int j=0; j<128 ;++j) { 225affc150dc44fab1911775a49636d0ce85333b634Zonr Chang name[1] = j; 226affc150dc44fab1911775a49636d0ce85333b634Zonr Chang syms[i][j] = m_pTestee->insertSymbol(name, 227affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 228affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 229affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 230affc150dc44fab1911775a49636d0ce85333b634Zonr Chang section, 231affc150dc44fab1911775a49636d0ce85333b634Zonr Chang value, 232affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 233affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other); 234affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 235affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ASSERT_STREQ(name, syms[i][j]->name()); 236affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 237affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 238affc150dc44fab1911775a49636d0ce85333b634Zonr Chang for(int i=127; i>=0 ;--i) { 239affc150dc44fab1911775a49636d0ce85333b634Zonr Chang name[0] = i; 240affc150dc44fab1911775a49636d0ce85333b634Zonr Chang for(int j=0; j<128 ;++j) { 241affc150dc44fab1911775a49636d0ce85333b634Zonr Chang name[1] = j; 242affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSymbol *sym = m_pTestee->insertSymbol(name, 243affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 244affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 245affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 246affc150dc44fab1911775a49636d0ce85333b634Zonr Chang section, 247affc150dc44fab1911775a49636d0ce85333b634Zonr Chang value, 248affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 249affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other); 250affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ASSERT_EQ(sym, syms[i][j]); 251affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 252affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 253affc150dc44fab1911775a49636d0ce85333b634Zonr Chang for(int i=0; i<128 ;++i) { 254affc150dc44fab1911775a49636d0ce85333b634Zonr Chang name[0] = i; 255affc150dc44fab1911775a49636d0ce85333b634Zonr Chang for(int j=0; j<128 ;++j) { 256affc150dc44fab1911775a49636d0ce85333b634Zonr Chang name[1] = j; 257affc150dc44fab1911775a49636d0ce85333b634Zonr Chang LDSymbol *sym = m_pTestee->insertSymbol(name, 258affc150dc44fab1911775a49636d0ce85333b634Zonr Chang isDyn, 259affc150dc44fab1911775a49636d0ce85333b634Zonr Chang type, 260affc150dc44fab1911775a49636d0ce85333b634Zonr Chang binding, 261affc150dc44fab1911775a49636d0ce85333b634Zonr Chang section, 262affc150dc44fab1911775a49636d0ce85333b634Zonr Chang value, 263affc150dc44fab1911775a49636d0ce85333b634Zonr Chang size, 264affc150dc44fab1911775a49636d0ce85333b634Zonr Chang other); 265affc150dc44fab1911775a49636d0ce85333b634Zonr Chang ASSERT_EQ(sym, syms[i][j]); 266affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 267affc150dc44fab1911775a49636d0ce85333b634Zonr Chang } 268affc150dc44fab1911775a49636d0ce85333b634Zonr Chang} 269