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 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/SectionData.h" 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/LDFileFormat.h" 1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/LDSection.h" 14cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 15cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaousing namespace mcld; 16cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liaousing namespace mcldtest; 17cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 18cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// Constructor can do set-up work for all test here. 1937b74a387bb3993387029859c2d9d051c41c724eStephen HinesSectionDataTest::SectionDataTest() { 20cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 21cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 22cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// Destructor can do clean-up work that doesn't throw exceptions here. 2337b74a387bb3993387029859c2d9d051c41c724eStephen HinesSectionDataTest::~SectionDataTest() { 24cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 25cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 26cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// SetUp() will be called immediately before each test. 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid SectionDataTest::SetUp() { 28cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 29cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 30cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// TearDown() will be called immediately after each test. 3137b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid SectionDataTest::TearDown() { 32cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 33cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 34cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===----------------------------------------------------------------------===// 35cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao// Testcases 36cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao//===----------------------------------------------------------------------===// 37551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines 3837b74a387bb3993387029859c2d9d051c41c724eStephen HinesTEST_F(SectionDataTest, constructor_and_trivial_func) { 3922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao LDSection* test = LDSection::Create("test", LDFileFormat::Null, 0, 0); 40551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines 4122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao SectionData* s = SectionData::Create(*test); 4237b74a387bb3993387029859c2d9d051c41c724eStephen Hines EXPECT_TRUE(s->getSection().name() == "test" && 43cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao s->getSection().kind() == LDFileFormat::Null); 44551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines 4522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao LDSection::Destroy(test); 46cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 47cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 4837b74a387bb3993387029859c2d9d051c41c724eStephen HinesTEST_F(SectionDataTest, Fragment_list_and_iterator) { 4922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao LDSection* test = LDSection::Create("test", LDFileFormat::Null, 0, 0); 5022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao SectionData* s = SectionData::Create(*test); 51cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(s->empty()); 52cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 5322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao new Fragment(Fragment::Alignment, s); 5422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao new Fragment(Fragment::Alignment, s); 5522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao new Fragment(Fragment::Region, s); 5622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao new Fragment(Fragment::Fillment, s); 5722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao new Fragment(Fragment::Target, s); 58d0fbbb227051be16931a1aa9b4a7722ac039c698Shih-wei Liao EXPECT_TRUE(5 == s->size()); 59cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 6037b74a387bb3993387029859c2d9d051c41c724eStephen Hines // iterator 6137b74a387bb3993387029859c2d9d051c41c724eStephen Hines llvm::iplist<Fragment>::iterator iter = s->begin(); 62cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Alignment == iter->getKind()); 63cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 64cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Alignment == iter->getKind()); 65cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 66cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Region == iter->getKind()); 67cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 68cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Fillment == iter->getKind()); 69cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 70cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(Fragment::Target == iter->getKind()); 71cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao ++iter; 72cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao EXPECT_TRUE(iter == s->end()); 73cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao 7422add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao LDSection::Destroy(test); 75cedee4b38f4786845183be7f5916dd520a170ae0Shih-wei Liao} 76