1 //===- SectionDataTest.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 "SectionDataTest.h" 10 11 #include "mcld/LD/SectionData.h" 12 #include "mcld/LD/LDFileFormat.h" 13 #include "mcld/LD/LDSection.h" 14 15 using namespace mcld; 16 using namespace mcldtest; 17 18 // Constructor can do set-up work for all test here. 19 SectionDataTest::SectionDataTest() { 20 } 21 22 // Destructor can do clean-up work that doesn't throw exceptions here. 23 SectionDataTest::~SectionDataTest() { 24 } 25 26 // SetUp() will be called immediately before each test. 27 void SectionDataTest::SetUp() { 28 } 29 30 // TearDown() will be called immediately after each test. 31 void SectionDataTest::TearDown() { 32 } 33 34 //===----------------------------------------------------------------------===// 35 // Testcases 36 //===----------------------------------------------------------------------===// 37 38 TEST_F(SectionDataTest, constructor_and_trivial_func) { 39 LDSection* test = LDSection::Create("test", LDFileFormat::Null, 0, 0); 40 41 SectionData* s = SectionData::Create(*test); 42 EXPECT_TRUE(s->getSection().name() == "test" && 43 s->getSection().kind() == LDFileFormat::Null); 44 45 LDSection::Destroy(test); 46 } 47 48 TEST_F(SectionDataTest, Fragment_list_and_iterator) { 49 LDSection* test = LDSection::Create("test", LDFileFormat::Null, 0, 0); 50 SectionData* s = SectionData::Create(*test); 51 EXPECT_TRUE(s->empty()); 52 53 new Fragment(Fragment::Alignment, s); 54 new Fragment(Fragment::Alignment, s); 55 new Fragment(Fragment::Region, s); 56 new Fragment(Fragment::Fillment, s); 57 new Fragment(Fragment::Target, s); 58 EXPECT_TRUE(5 == s->size()); 59 60 // iterator 61 llvm::iplist<Fragment>::iterator iter = s->begin(); 62 EXPECT_TRUE(Fragment::Alignment == iter->getKind()); 63 ++iter; 64 EXPECT_TRUE(Fragment::Alignment == iter->getKind()); 65 ++iter; 66 EXPECT_TRUE(Fragment::Region == iter->getKind()); 67 ++iter; 68 EXPECT_TRUE(Fragment::Fillment == iter->getKind()); 69 ++iter; 70 EXPECT_TRUE(Fragment::Target == iter->getKind()); 71 ++iter; 72 EXPECT_TRUE(iter == s->end()); 73 74 LDSection::Destroy(test); 75 } 76