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