Home | History | Annotate | Download | only in unittests
      1 //===- FragmentTest.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 "FragmentTest.h"
     10 
     11 #include "mcld/Fragment/Fragment.h"
     12 #include "mcld/LD/SectionData.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 FragmentTest::FragmentTest() {
     20 }
     21 
     22 // Destructor can do clean-up work that doesn't throw exceptions here.
     23 FragmentTest::~FragmentTest() {
     24 }
     25 
     26 // SetUp() will be called immediately before each test.
     27 void FragmentTest::SetUp() {
     28 }
     29 
     30 // TearDown() will be called immediately after each test.
     31 void FragmentTest::TearDown() {
     32 }
     33 
     34 //===----------------------------------------------------------------------===//
     35 // Testcases
     36 
     37 TEST_F(FragmentTest, Fragment_constructor) {
     38   LDSection* test = LDSection::Create("test", LDFileFormat::Null, 0, 0);
     39   SectionData* s = SectionData::Create(*test);
     40   new Fragment(Fragment::Alignment, s);
     41   EXPECT_TRUE(1 == s->size());
     42   new Fragment(Fragment::Alignment, s);
     43   new Fragment(Fragment::Region, s);
     44   new Fragment(Fragment::Fillment, s);
     45   new Fragment(Fragment::Target, s);
     46   EXPECT_TRUE(5 == s->size());
     47 
     48   LDSection::Destroy(test);
     49   //  SectionData::Destroy(s);
     50 }
     51 
     52 TEST_F(FragmentTest, Fragment_trivial_function) {
     53   LDSection* test = LDSection::Create("test", LDFileFormat::Null, 0, 0);
     54   SectionData* s = SectionData::Create(*test);
     55   Fragment* f = new Fragment(Fragment::Alignment, s);
     56 
     57   EXPECT_TRUE(Fragment::Alignment == f->getKind());
     58 
     59   f->setOffset(5566);
     60   EXPECT_TRUE(5566 == f->getOffset());
     61 
     62   // always return true
     63   EXPECT_TRUE(f->classof(new Fragment(Fragment::Region, s)));
     64 
     65   LDSection::Destroy(test);
     66   //  SectionData::Destroy(s);
     67 }
     68