15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- MCRegionFragmentTest.cpp - MCRegionFragment implementation ---------===// 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// The MCLinker Project 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details. 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===// 95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "MCRegionFragmentTest.h" 115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 12f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/MC/MCRegionFragment.h> 13f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Support/MemoryAreaFactory.h> 14f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include <mcld/Support/Path.h> 155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcld; 175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcldtest; 185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaousing namespace mcld::sys::fs; 195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Constructor can do set-up work for all test here. 225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoMCRegionFragmentTest::MCRegionFragmentTest() 235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 245460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 255460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Destructor can do clean-up work that doesn't throw exceptions here. 275460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoMCRegionFragmentTest::~MCRegionFragmentTest() 285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 305460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// SetUp() will be called immediately before each test. 325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaovoid MCRegionFragmentTest::SetUp() 335460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 365460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// TearDown() will be called immediately after each test. 375460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liaovoid MCRegionFragmentTest::TearDown() 385460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao{ 395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//==========================================================================// 425460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// Testcases 435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 455460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoTEST_F( MCRegionFragmentTest, classof_explicit ) { 465460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao Path path(TOPDIR); 475460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao path.append("unittests/test3.txt"); 485460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MemoryAreaFactory* areaFactory = new MemoryAreaFactory(1); 495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MemoryArea* area = areaFactory->produce(path, MemoryArea::ReadWrite); 505460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 515460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MemoryRegion* region = area->request(0, 4096); 525460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MCRegionFragment *frag = new MCRegionFragment(*region); 535460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 545460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_FALSE(llvm::MCDataFragment::classof(frag)); 555460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_TRUE(MCRegionFragment::classof(frag)); 565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao delete frag; 575460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao delete areaFactory; 585460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 595460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 605460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei LiaoTEST_F( MCRegionFragmentTest, classof_implicit ) { 615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao Path path(TOPDIR); 625460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao path.append("unittests/test3.txt"); 635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MemoryAreaFactory* areaFactory = new MemoryAreaFactory(1); 645460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MemoryArea* area = areaFactory->produce(path, MemoryArea::ReadWrite); 655460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao MemoryRegion* region = area->request(0, 4096); 675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao llvm::MCFragment *frag = new MCRegionFragment(*region); 685460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_FALSE(llvm::MCDataFragment::classof(frag)); 705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao ASSERT_TRUE(MCRegionFragment::classof(frag)); 715460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao delete frag; 725460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao delete areaFactory; 735460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao} 745460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 75