StringTableTest.cpp revision 5460a1f25d9ddecb5c70667267d66d51af177a99
15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- StringTableTest.cpp ------------------------------------------------===// 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// The MCLinker Project 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details. 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===// 95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "StringTableTest.h" 105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/LD/StringTable.h" 115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <cstring> 125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcld; 145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcldtest; 155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Constructor can do set-up work for all test here. 185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoStringTableTest::StringTableTest() 195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao // create testee. modify it if need 215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao Resolver* R = new Resolver(); 225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao StrSymPool* Pool = new StrSymPool(1, 1, *R); 235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao m_pTestee = new StringTable(*Pool); 245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Destructor can do clean-up work that doesn't throw exceptions here. 275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoStringTableTest::~StringTableTest() 285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao delete m_pTestee; 305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// SetUp() will be called immediately before each test. 335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaovoid StringTableTest::SetUp() 345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// TearDown() will be called immediately after each test. 385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaovoid StringTableTest::TearDown() 395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//==========================================================================// 435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Testcases 445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoTEST_F(StringTableTest, different_string_size) { 465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao int size = 127-32; 475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao for (int i = 32; i < 127; ++i) { 485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao char c[2]; 495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao c[0] = i; 505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao c[1] = '\0'; 515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_NE(m_pTestee->insert(c), c); 525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao } 535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_EQ(m_pTestee->size(), size); 545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoTEST_F(StringTableTest, traverse_begin_to_end) { 575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao m_pTestee->insert("Hello"); 585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao m_pTestee->insert("World"); 595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao m_pTestee->insert("Media"); 605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao m_pTestee->insert("Tek"); 615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao StringTable::iterator it = m_pTestee->begin(); 625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_STREQ(*it, "Hello"); 635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ++it; 645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_STREQ(*it, "World"); 655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ++it; 665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_STREQ(*it, "Media"); 675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ++it; 685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_STREQ(*it, "Tek"); 695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ++it; 705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_EQ(it, m_pTestee->end()); 715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoTEST_F(StringTableTest, null_string) { 745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao m_pTestee->insert(""); 755460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_STREQ(*(m_pTestee->begin()), ""); 765460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_EQ(m_pTestee->size(), 1); 775460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 78