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>
1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LinkerConfig.h"
1437b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LinkerScript.h"
1537b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/ELFReaderIf.h"
1637b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/ELFReader.h"
1737b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/ELFObjectReader.h"
1837b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Target/GNULDBackend.h"
1937b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/MC/InputBuilder.h"
206f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
216f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hinesnamespace mcld {
2237b74a387bb3993387029859c2d9d051c41c724eStephen Hinestemplate <>
2337b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ELFReader<64, true>;
2437b74a387bb3993387029859c2d9d051c41c724eStephen Hines}  // namespace for mcld
256f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
2637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcldtest {
276f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
2837b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ELFReaderTest : public ::testing::Test {
2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines public:
306f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines  // Constructor can do set-up work for all test here.
316f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines  ELFReaderTest();
326f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
336f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines  // Destructor can do clean-up work that doesn't throw exceptions here.
346f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines  virtual ~ELFReaderTest();
356f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
366f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines  // SetUp() will be called immediately before each test.
376f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines  virtual void SetUp();
386f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
396f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines  // TearDown() will be called immediately after each test.
406f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines  virtual void TearDown();
416f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
4237b74a387bb3993387029859c2d9d051c41c724eStephen Hines protected:
43f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::Input* m_pInput;
44f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::LinkerConfig* m_pConfig;
45f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::LinkerScript* m_pScript;
46f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::GNUInfo* m_pInfo;
47f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::GNULDBackend* m_pLDBackend;
48f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::ELFReaderIF* m_pELFReader;
49f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::Module* m_pModule;
50f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::IRBuilder* m_pIRBuilder;
51f7ac0f19a1c8d0ad14bcf6456ce368b830fea886Stephen Hines  mcld::ELFObjectReader* m_pELFObjReader;
526f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines};
536f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
5437b74a387bb3993387029859c2d9d051c41c724eStephen Hines}  // namespace of mcldtest
556f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines
566f75755c9204b1d8817ae5a65a2f7e5af0ec3f70Stephen Hines#endif
57