blob: a6be2b78d0fc1f004211395f02538b4d4928f344 [file] [log] [blame]
Shih-wei Liao5460a1f2012-03-16 22:41:16 -07001//===- LinearAllocatorTest.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 LINEAR_ALLOCATOR_TEST_H
10#define LINEAR_ALLOCATOR_TEST_H
11
12#include <gtest.h>
13#include "mcld/Support/Allocators.h"
14
15namespace mcldtest
16{
17
18/** \class LinearAllocatorTest
19 * \brief The testcase for LinearAllocator
20 *
21 * \see LinearAllocator
22 */
23class LinearAllocatorTest : public ::testing::Test
24{
25public:
26 struct Data {
27 Data()
28 : one(1), two(2), three(3), four(4)
29 { }
30
31 Data( unsigned int pOne, unsigned int pTwo, unsigned char pThree, unsigned char pFour)
32 {
33 one = pOne;
34 two = pTwo;
35 three = pThree;
36 four = pFour;
37 }
38
39 ~Data()
40 {
41 one = -1;
42 two = -2;
43 three = -3;
44 four = -4;
45 }
46
47 unsigned int one;
48 unsigned int two;
49 unsigned char three;
50 unsigned char four;
51 };
52public:
53 // Constructor can do set-up work for all test here.
54 LinearAllocatorTest();
55
56 // Destructor can do clean-up work that doesn't throw exceptions here.
57 virtual ~LinearAllocatorTest();
58
59 // SetUp() will be called immediately before each test.
60 virtual void SetUp();
61
62 // TearDown() will be called immediately after each test.
63 virtual void TearDown();
64
65protected:
Shih-wei Liao22add6f2012-12-15 17:21:00 -080066 enum TemplateArgsType { CHUNK_SIZE = 32 };
Shih-wei Liao5460a1f2012-03-16 22:41:16 -070067 typedef mcld::LinearAllocator<Data, CHUNK_SIZE> Alloc;
68protected:
69 Alloc* m_pTestee;
70};
71
72} // namespace of mcldtest
73
74#endif
75