16f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines//===- ELFReaderTest.h ----------------------------------------------------===// 26f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// 36f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// The MCLinker Project 46f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// 56f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// This file is distributed under the University of Illinois Open Source 66f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// License. See LICENSE.TXT for details. 76f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines// 86f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines//===----------------------------------------------------------------------===// 96f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#ifndef MCLD_ELFREADER_TEST_H 106f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#define MCLD_ELFREADER_TEST_H 116f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 126f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <gtest.h> 136f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <mcld/LinkerConfig.h> 14f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines#include <mcld/LinkerScript.h> 156f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <mcld/LD/ELFReaderIf.h> 166f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <mcld/LD/ELFReader.h> 176f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <mcld/LD/ELFObjectReader.h> 186f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <mcld/Target/GNULDBackend.h> 196f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#include <mcld/MC/InputBuilder.h> 206f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 216f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesnamespace mcld { 22f33f6de54db174aa679a4b6d1e040d37e95541c0Stephen Hines template<> class ELFReader<64, true>; 236f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines} // namespace for mcld 246f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 256f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesnamespace mcldtest 266f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines{ 276f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 286f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesclass ELFReaderTest : public ::testing::Test 296f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines{ 306f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinespublic: 316f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines // Constructor can do set-up work for all test here. 326f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines ELFReaderTest(); 336f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 346f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines // Destructor can do clean-up work that doesn't throw exceptions here. 356f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines virtual ~ELFReaderTest(); 366f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 376f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines // SetUp() will be called immediately before each test. 386f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines virtual void SetUp(); 396f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 406f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines // TearDown() will be called immediately after each test. 416f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines virtual void TearDown(); 426f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 436f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesprotected: 44f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::Input* m_pInput; 45f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::LinkerConfig* m_pConfig; 46f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::LinkerScript* m_pScript; 47f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::GNUInfo* m_pInfo; 48f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::GNULDBackend* m_pLDBackend; 49f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::ELFReaderIF* m_pELFReader; 50f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::Module* m_pModule; 51f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::IRBuilder* m_pIRBuilder; 52f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines mcld::ELFObjectReader* m_pELFObjReader; 536f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines}; 546f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 556f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines} // namespace of mcldtest 566f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 576f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#endif 586f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines 59