1 //===- 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 15 namespace mcldtest 16 { 17 18 /** \class LinearAllocatorTest 19 * \brief The testcase for LinearAllocator 20 * 21 * \see LinearAllocator 22 */ 23 class LinearAllocatorTest : public ::testing::Test 24 { 25 public: 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 }; 52 public: 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 65 protected: 66 enum TemplateArgsType { CHUNK_SIZE = 32 }; 67 typedef mcld::LinearAllocator<Data, CHUNK_SIZE> Alloc; 68 protected: 69 Alloc* m_pTestee; 70 }; 71 72 } // namespace of mcldtest 73 74 #endif 75 76