1//===- MCRegionFragmentTest.cpp - MCRegionFragment implementation ---------===// 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 10#include "MCRegionFragmentTest.h" 11 12#include "mcld/MC/MCRegionFragment.h" 13#include "mcld/Support/MemoryAreaFactory.h" 14#include "mcld/Support/Path.h" 15 16using namespace mcld; 17using namespace mcldtest; 18using namespace mcld::sys::fs; 19 20 21// Constructor can do set-up work for all test here. 22MCRegionFragmentTest::MCRegionFragmentTest() 23{ 24} 25 26// Destructor can do clean-up work that doesn't throw exceptions here. 27MCRegionFragmentTest::~MCRegionFragmentTest() 28{ 29} 30 31// SetUp() will be called immediately before each test. 32void MCRegionFragmentTest::SetUp() 33{ 34} 35 36// TearDown() will be called immediately after each test. 37void MCRegionFragmentTest::TearDown() 38{ 39} 40 41//==========================================================================// 42// Testcases 43// 44 45TEST_F( MCRegionFragmentTest, classof_explicit ) { 46 Path path(TOPDIR); 47 path.append("unittests/test3.txt"); 48 MemoryAreaFactory* areaFactory = new MemoryAreaFactory(1); 49 MemoryArea* area = areaFactory->produce(path, MemoryArea::ReadWrite); 50 51 MemoryRegion* region = area->request(0, 4096); 52 MCRegionFragment *frag = new MCRegionFragment(*region); 53 54 ASSERT_FALSE(llvm::MCDataFragment::classof(frag)); 55 ASSERT_TRUE(MCRegionFragment::classof(frag)); 56 delete frag; 57 delete areaFactory; 58} 59 60TEST_F( MCRegionFragmentTest, classof_implicit ) { 61 Path path(TOPDIR); 62 path.append("unittests/test3.txt"); 63 MemoryAreaFactory* areaFactory = new MemoryAreaFactory(1); 64 MemoryArea* area = areaFactory->produce(path, MemoryArea::ReadWrite); 65 66 MemoryRegion* region = area->request(0, 4096); 67 llvm::MCFragment *frag = new MCRegionFragment(*region); 68 69 ASSERT_FALSE(llvm::MCDataFragment::classof(frag)); 70 ASSERT_TRUE(MCRegionFragment::classof(frag)); 71 delete frag; 72 delete areaFactory; 73} 74 75