StringTableTest.cpp revision 5460a1f25d9ddecb5c70667267d66d51af177a99
1//===- StringTableTest.cpp ------------------------------------------------===// 2// 3// The MCLinker Project 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9#include "StringTableTest.h" 10#include "mcld/LD/StringTable.h" 11#include <cstring> 12 13using namespace mcld; 14using namespace mcldtest; 15 16 17// Constructor can do set-up work for all test here. 18StringTableTest::StringTableTest() 19{ 20 // create testee. modify it if need 21 Resolver* R = new Resolver(); 22 StrSymPool* Pool = new StrSymPool(1, 1, *R); 23 m_pTestee = new StringTable(*Pool); 24} 25 26// Destructor can do clean-up work that doesn't throw exceptions here. 27StringTableTest::~StringTableTest() 28{ 29 delete m_pTestee; 30} 31 32// SetUp() will be called immediately before each test. 33void StringTableTest::SetUp() 34{ 35} 36 37// TearDown() will be called immediately after each test. 38void StringTableTest::TearDown() 39{ 40} 41 42//==========================================================================// 43// Testcases 44// 45TEST_F(StringTableTest, different_string_size) { 46 int size = 127-32; 47 for (int i = 32; i < 127; ++i) { 48 char c[2]; 49 c[0] = i; 50 c[1] = '\0'; 51 ASSERT_NE(m_pTestee->insert(c), c); 52 } 53 ASSERT_EQ(m_pTestee->size(), size); 54} 55 56TEST_F(StringTableTest, traverse_begin_to_end) { 57 m_pTestee->insert("Hello"); 58 m_pTestee->insert("World"); 59 m_pTestee->insert("Media"); 60 m_pTestee->insert("Tek"); 61 StringTable::iterator it = m_pTestee->begin(); 62 ASSERT_STREQ(*it, "Hello"); 63 ++it; 64 ASSERT_STREQ(*it, "World"); 65 ++it; 66 ASSERT_STREQ(*it, "Media"); 67 ++it; 68 ASSERT_STREQ(*it, "Tek"); 69 ++it; 70 ASSERT_EQ(it, m_pTestee->end()); 71} 72 73TEST_F(StringTableTest, null_string) { 74 m_pTestee->insert(""); 75 ASSERT_STREQ(*(m_pTestee->begin()), ""); 76 ASSERT_EQ(m_pTestee->size(), 1); 77} 78