//===- LinearAllocatorTest.h ----------------------------------------------===// // // The MCLinker Project // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef LINEAR_ALLOCATOR_TEST_H #define LINEAR_ALLOCATOR_TEST_H #include <gtest.h> #include "mcld/Support/Allocators.h" namespace mcldtest { /** \class LinearAllocatorTest * \brief The testcase for LinearAllocator * * \see LinearAllocator */ class LinearAllocatorTest : public ::testing::Test { public: struct Data { Data() : one(1), two(2), three(3), four(4) {} Data(unsigned int pOne, unsigned int pTwo, unsigned char pThree, unsigned char pFour) { one = pOne; two = pTwo; three = pThree; four = pFour; } ~Data() { one = -1; two = -2; three = -3; four = -4; } unsigned int one; unsigned int two; unsigned char three; unsigned char four; }; public: // Constructor can do set-up work for all test here. LinearAllocatorTest(); // Destructor can do clean-up work that doesn't throw exceptions here. virtual ~LinearAllocatorTest(); // SetUp() will be called immediately before each test. virtual void SetUp(); // TearDown() will be called immediately after each test. virtual void TearDown(); protected: enum TemplateArgsType { CHUNK_SIZE = 32 }; typedef mcld::LinearAllocator<Data, CHUNK_SIZE> Alloc; protected: Alloc* m_pTestee; }; } // namespace of mcldtest #endif