1f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===- ELFBinaryReaderTest.cpp --------------------------------------------===// 2f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 3f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// The MCLinker Project 4f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 5f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// This file is distributed under the University of Illinois Open Source 6f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// License. See LICENSE.TXT for details. 7f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// 8f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/ELFBinaryReader.h" 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Module.h" 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LinkerScript.h" 1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LinkerConfig.h" 1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/IRBuilder.h" 1437b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/GeneralOptions.h" 1537b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/MC/Input.h" 16f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 17f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines#include "ELFBinaryReaderTest.h" 18f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 19f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesusing namespace mcld; 20f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hinesusing namespace mcld::test; 21f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// Constructor can do set-up work for all test here. 2337b74a387bb3993387029859c2d9d051c41c724eStephen HinesELFBinaryReaderTest::ELFBinaryReaderTest() { 24f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 25f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 26f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// Destructor can do clean-up work that doesn't throw exceptions here. 2737b74a387bb3993387029859c2d9d051c41c724eStephen HinesELFBinaryReaderTest::~ELFBinaryReaderTest() { 28f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 29f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 30f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// SetUp() will be called immediately before each test. 3137b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid ELFBinaryReaderTest::SetUp() { 32f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 33f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 34f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// TearDown() will be called immediately after each test. 3537b74a387bb3993387029859c2d9d051c41c724eStephen Hinesvoid ELFBinaryReaderTest::TearDown() { 36f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 37f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 38f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 39f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines// Testcases 40f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines//===----------------------------------------------------------------------===// 4137b74a387bb3993387029859c2d9d051c41c724eStephen HinesTEST_F(ELFBinaryReaderTest, is_myformat) { 42f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines LinkerScript script; 43f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines Module module("test", script); 44f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines LinkerConfig config; 45f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines IRBuilder builder(module, config); 4637b74a387bb3993387029859c2d9d051c41c724eStephen Hines ELFBinaryReader* reader = new ELFBinaryReader(builder, config); 47f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 48f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines Input input("test.bin"); 49f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 50f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines bool doContinue = false; 51f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines config.options().setBinaryInput(); 52f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines ASSERT_TRUE(reader->isMyFormat(input, doContinue)); 53f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 54f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines config.options().setBinaryInput(false); 55f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines ASSERT_FALSE(reader->isMyFormat(input, doContinue)); 56f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines 57f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines delete reader; 58f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines} 59