RTLinearAllocatorTest.h revision 37b74a387bb3993387029859c2d9d051c41c724e
1//===- RTLinearAllocatorTest.h --------------------------------------------===//
2//
3//                     The MCLinker Project
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9#ifndef RTLINEARALLOCATOR_TEST_H
10#define RTLINEARALLOCATOR_TEST_H
11
12#include <gtest.h>
13#include "mcld/Support/Allocators.h"
14
15namespace mcldtest {
16
17/** \class RTLinearAllocatorTest
18 *  \brief
19 *
20 *  \see RTLinearAllocator
21 */
22class RTLinearAllocatorTest : public ::testing::Test {
23 public:
24  // Constructor can do set-up work for all test here.
25  RTLinearAllocatorTest();
26
27  // Destructor can do clean-up work that doesn't throw exceptions here.
28  virtual ~RTLinearAllocatorTest();
29
30  // SetUp() will be called immediately before each test.
31  virtual void SetUp();
32
33  // TearDown() will be called immediately after each test.
34  virtual void TearDown();
35
36 public:
37  struct Data {
38    Data() : one(1), two(2), three(3), four(4) {}
39
40    Data(unsigned int pOne,
41         unsigned int pTwo,
42         unsigned char pThree,
43         unsigned char pFour) {
44      one = pOne;
45      two = pTwo;
46      three = pThree;
47      four = pFour;
48    }
49
50    ~Data() {
51      one = -1;
52      two = -2;
53      three = -3;
54      four = -4;
55    }
56
57    unsigned int one;
58    unsigned int two;
59    unsigned char three;
60    unsigned char four;
61  };
62  enum { CHUNK_SIZE = 32 };
63
64 protected:
65  mcld::LinearAllocator<Data, 0>* m_pTestee;
66};
67
68}  // namespace of mcldtest
69
70#endif
71