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 15using namespace mcld; 16using namespace mcldtest; 17 18 19// Constructor can do set-up work for all test here. 20SectionDataTest::SectionDataTest() 21{ 22} 23 24// Destructor can do clean-up work that doesn't throw exceptions here. 25SectionDataTest::~SectionDataTest() 26{ 27} 28 29// SetUp() will be called immediately before each test. 30void SectionDataTest::SetUp() 31{ 32} 33 34// TearDown() will be called immediately after each test. 35void SectionDataTest::TearDown() 36{ 37} 38 39//===----------------------------------------------------------------------===// 40// Testcases 41//===----------------------------------------------------------------------===// 42 43TEST_F( SectionDataTest, constructor_and_trivial_func ) { 44 LDSection test("test", LDFileFormat::Null, 0, 0); 45 46 SectionData* s = new SectionData(test); 47 EXPECT_TRUE(s->getSection().name() == "test" && \ 48 s->getSection().kind() == LDFileFormat::Null); 49 50 s->setAlignment(5566); 51 EXPECT_TRUE(5566 == s->getAlignment()); 52 53 delete s; 54} 55 56TEST_F( SectionDataTest, Fragment_list_and_iterator ) { 57 LDSection test("test", LDFileFormat::Null, 0, 0); 58 SectionData* s = new SectionData(test); 59 EXPECT_TRUE(s->empty()); 60 61 Fragment* f1 = new Fragment(Fragment::Alignment, s); 62 Fragment* f2 = new Fragment(Fragment::Alignment, s); 63 Fragment* f3 = new Fragment(Fragment::Region, s); 64 Fragment* f4 = new Fragment(Fragment::Fillment, s); 65 Fragment* f5 = new Fragment(Fragment::Relocation, s); 66 Fragment* f6 = new Fragment(Fragment::Target, s); 67 EXPECT_TRUE(6 == s->size()); 68 69 //iterator 70 llvm::iplist<Fragment>::iterator iter=s->begin(); 71 EXPECT_TRUE(Fragment::Alignment == iter->getKind()); 72 ++iter; 73 EXPECT_TRUE(Fragment::Alignment == iter->getKind()); 74 ++iter; 75 EXPECT_TRUE(Fragment::Region == iter->getKind()); 76 ++iter; 77 EXPECT_TRUE(Fragment::Fillment == iter->getKind()); 78 ++iter; 79 EXPECT_TRUE(Fragment::Relocation == iter->getKind()); 80 ++iter; 81 EXPECT_TRUE(Fragment::Target == iter->getKind()); 82 ++iter; 83 EXPECT_TRUE(iter == s->end()); 84 85 delete s; 86} 87