15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- UniqueGCFactoryBaseTest.h ------------------------------------------===//
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#ifndef UNIQUE_GCFACTORYBASE_TEST_H
105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#define UNIQUE_GCFACTORYBASE_TEST_H
115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/Support/UniqueGCFactory.h"
1337b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LinkerConfig.h"
1437b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "mcld/LD/DiagnosticPrinter.h"
155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <gtest.h>
165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
1737b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcldtest {
185460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao/** \class UniqueGCFactoryBaseTest
205460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  - check the unique of key.
215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  - make sure the key associates with the same storage of value.
225460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao *  - check if all functions in the GCFactoryBase are available.
235460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao */
2437b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass UniqueGCFactoryBaseTest : public ::testing::Test {
2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines public:
2622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  // Constructor can do set-up work for all test here.
2722add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  UniqueGCFactoryBaseTest();
285460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
2922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  // Destructor can do clean-up work that doesn't throw exceptions here.
3022add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  virtual ~UniqueGCFactoryBaseTest();
315460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3222add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  // SetUp() will be called immediately before each test.
3322add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  virtual void SetUp();
345460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
3522add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  // TearDown() will be called immediately after each test.
3622add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  virtual void TearDown();
37affc150dc44fab1911775a49636d0ce85333b634Zonr Chang
3837b74a387bb3993387029859c2d9d051c41c724eStephen Hines private:
3922add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao  mcld::LinkerConfig* m_pConfig;
405460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao};
415460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
4237b74a387bb3993387029859c2d9d051c41c724eStephen Hines}  // namespace of mcldtest
435460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao
445460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif
45