//===- 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