Home | History | Annotate | Download | only in unittests
      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