1cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===- SectionDataTest.cpp ------------------------------------------------===// 2cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// 3cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// The MCLinker Project 4cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// 5cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// This file is distributed under the University of Illinois Open Source 6cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// License. See LICENSE.TXT for details. 7cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// 8cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===----------------------------------------------------------------------===// 9cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#include "SectionDataTest.h" 10cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 11cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#include <mcld/LD/SectionData.h> 12cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#include <mcld/LD/LDFileFormat.h> 13cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao#include <mcld/LD/LDSection.h> 14cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 15cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaousing namespace mcld; 16cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaousing namespace mcldtest; 17cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 18cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 19cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// Constructor can do set-up work for all test here. 20cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei LiaoSectionDataTest::SectionDataTest() 21cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao{ 22cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 23cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 24cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// Destructor can do clean-up work that doesn't throw exceptions here. 25cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei LiaoSectionDataTest::~SectionDataTest() 26cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao{ 27cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 28cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 29cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// SetUp() will be called immediately before each test. 30cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaovoid SectionDataTest::SetUp() 31cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao{ 32cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 33cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 34cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// TearDown() will be called immediately after each test. 35cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaovoid SectionDataTest::TearDown() 36cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao{ 37cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 38cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 39cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===----------------------------------------------------------------------===// 40cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// Testcases 41cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===----------------------------------------------------------------------===// 42cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 43cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei LiaoTEST_F( SectionDataTest, constructor_and_trivial_func ) { 44cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao LDSection test("test", LDFileFormat::Null, 0, 0); 45cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 46cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao SectionData* s = new SectionData(test); 47cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(s->getSection().name() == "test" && \ 48cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao s->getSection().kind() == LDFileFormat::Null); 49cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 50cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao s->setAlignment(5566); 51cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(5566 == s->getAlignment()); 52cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 53cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao delete s; 54cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 55cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 56cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei LiaoTEST_F( SectionDataTest, Fragment_list_and_iterator ) { 57cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao LDSection test("test", LDFileFormat::Null, 0, 0); 58cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao SectionData* s = new SectionData(test); 59cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(s->empty()); 60cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 61cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao Fragment* f1 = new Fragment(Fragment::Alignment, s); 62cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao Fragment* f2 = new Fragment(Fragment::Alignment, s); 63cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao Fragment* f3 = new Fragment(Fragment::Region, s); 64cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao Fragment* f4 = new Fragment(Fragment::Fillment, s); 65cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao Fragment* f5 = new Fragment(Fragment::Relocation, s); 66cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao Fragment* f6 = new Fragment(Fragment::Target, s); 67cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(6 == s->size()); 68cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 69cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao //iterator 70cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao llvm::iplist<Fragment>::iterator iter=s->begin(); 71cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Alignment == iter->getKind()); 72cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 73cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Alignment == iter->getKind()); 74cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 75cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Region == iter->getKind()); 76cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 77cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Fillment == iter->getKind()); 78cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 79cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Relocation == iter->getKind()); 80cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 81cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Target == iter->getKind()); 82cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 83cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(iter == s->end()); 84cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 85cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao delete s; 86cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 87