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