15460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===- RTLinearAllocatorTest.h --------------------------------------------===// 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// The MCLinker Project 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// This file is distributed under the University of Illinois Open Source 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// License. See LICENSE.TXT for details. 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao// 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao//===----------------------------------------------------------------------===// 95460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#ifndef RTLINEARALLOCATOR_TEST_H 105460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#define RTLINEARALLOCATOR_TEST_H 115460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 125460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include <gtest.h> 135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#include "mcld/Support/Allocators.h" 145460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 1537b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace mcldtest { 165460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 175460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao/** \class RTLinearAllocatorTest 18551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines * \brief 195460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 20551ae4ebd3e9d137ea668fb83ae4a55b8cfba451Stephen Hines * \see RTLinearAllocator 215460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao */ 2237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass RTLinearAllocatorTest : public ::testing::Test { 2337b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 2437b74a387bb3993387029859c2d9d051c41c724eStephen Hines // Constructor can do set-up work for all test here. 2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines RTLinearAllocatorTest(); 265460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hines // Destructor can do clean-up work that doesn't throw exceptions here. 2837b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual ~RTLinearAllocatorTest(); 295460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3037b74a387bb3993387029859c2d9d051c41c724eStephen Hines // SetUp() will be called immediately before each test. 3137b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual void SetUp(); 325460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3337b74a387bb3993387029859c2d9d051c41c724eStephen Hines // TearDown() will be called immediately after each test. 3437b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual void TearDown(); 355460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 3637b74a387bb3993387029859c2d9d051c41c724eStephen Hines public: 3737b74a387bb3993387029859c2d9d051c41c724eStephen Hines struct Data { 3837b74a387bb3993387029859c2d9d051c41c724eStephen Hines Data() : one(1), two(2), three(3), four(4) {} 395460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 4037b74a387bb3993387029859c2d9d051c41c724eStephen Hines Data(unsigned int pOne, 4137b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned int pTwo, 4237b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned char pThree, 4337b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned char pFour) { 4437b74a387bb3993387029859c2d9d051c41c724eStephen Hines one = pOne; 4537b74a387bb3993387029859c2d9d051c41c724eStephen Hines two = pTwo; 4637b74a387bb3993387029859c2d9d051c41c724eStephen Hines three = pThree; 4737b74a387bb3993387029859c2d9d051c41c724eStephen Hines four = pFour; 4837b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 495460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5037b74a387bb3993387029859c2d9d051c41c724eStephen Hines ~Data() { 5137b74a387bb3993387029859c2d9d051c41c724eStephen Hines one = -1; 5237b74a387bb3993387029859c2d9d051c41c724eStephen Hines two = -2; 5337b74a387bb3993387029859c2d9d051c41c724eStephen Hines three = -3; 5437b74a387bb3993387029859c2d9d051c41c724eStephen Hines four = -4; 5537b74a387bb3993387029859c2d9d051c41c724eStephen Hines } 565460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 5737b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned int one; 5837b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned int two; 5937b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned char three; 6037b74a387bb3993387029859c2d9d051c41c724eStephen Hines unsigned char four; 615460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao }; 6237b74a387bb3993387029859c2d9d051c41c724eStephen Hines enum { CHUNK_SIZE = 32 }; 635460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6437b74a387bb3993387029859c2d9d051c41c724eStephen Hines protected: 6537b74a387bb3993387029859c2d9d051c41c724eStephen Hines mcld::LinearAllocator<Data, 0>* m_pTestee; 665460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao}; 675460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 6837b74a387bb3993387029859c2d9d051c41c724eStephen Hines} // namespace of mcldtest 695460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao 705460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao#endif 71