LinearAllocatorTest.h revision 551ae4ebd3e9d137ea668fb83ae4a55b8cfba451
163abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey//===- LinearAllocatorTest.h ----------------------------------------------===// 263abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey// 363abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey// The MCLinker Project 463abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey// 563abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey// This file is distributed under the University of Illinois Open Source 663abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey// License. See LICENSE.TXT for details. 763abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey// 863abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey//===----------------------------------------------------------------------===// 963abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey#ifndef LINEAR_ALLOCATOR_TEST_H 1063abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey#define LINEAR_ALLOCATOR_TEST_H 1163abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey 1263abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey#include <gtest.h> 1363abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey#include "mcld/Support/Allocators.h" 1463abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey 1563abc37356728c0575d6a62a203102ae6d97953bJeff Sharkeynamespace mcldtest 1663abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey{ 1763abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey 1863abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey/** \class LinearAllocatorTest 1963abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey * \brief The testcase for LinearAllocator 2063abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey * 211b8ef7e3165ff9aa52a4905dafc8d0f83e7403f9Jeff Sharkey * \see LinearAllocator 2263abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey */ 2363abc37356728c0575d6a62a203102ae6d97953bJeff Sharkeyclass LinearAllocatorTest : public ::testing::Test 2463abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey{ 2571cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkeypublic: 2671cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey struct Data { 2771cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey Data() 2871cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey : one(1), two(2), three(3), four(4) 2971cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey { } 3063abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey 3163abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey Data( unsigned int pOne, unsigned int pTwo, unsigned char pThree, unsigned char pFour) 3271cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey { 3371cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey one = pOne; 3463abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey two = pTwo; 3571cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey three = pThree; 3671cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey four = pFour; 3771cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey } 3871cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey 3971cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey ~Data() 4071cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey { 4171cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey one = -1; 4271cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey two = -2; 4371cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey three = -3; 4471cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey four = -4; 4571cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey } 4663abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey 4763abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey unsigned int one; 4867be7184762d17d243a9396dd9989369f7f7e0d1Jeff Sharkey unsigned int two; 4967be7184762d17d243a9396dd9989369f7f7e0d1Jeff Sharkey unsigned char three; 5071cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey unsigned char four; 5171cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey }; 5271cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkeypublic: 5371cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey // Constructor can do set-up work for all test here. 5471cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey LinearAllocatorTest(); 5563abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey 5671cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey // Destructor can do clean-up work that doesn't throw exceptions here. 5771cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey virtual ~LinearAllocatorTest(); 5863abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey 5963abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey // SetUp() will be called immediately before each test. 6063abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey virtual void SetUp(); 6171cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey 6271cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey // TearDown() will be called immediately after each test. 6363abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey virtual void TearDown(); 6463abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey 6563abc37356728c0575d6a62a203102ae6d97953bJeff Sharkeyprotected: 6671cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey enum TemplateArgsType { CHUNK_SIZE = 32 }; 6771cb446f010e791ca77a27c416a79b5ccb3f075bJeff Sharkey typedef mcld::LinearAllocator<Data, CHUNK_SIZE> Alloc; 6863abc37356728c0575d6a62a203102ae6d97953bJeff Sharkeyprotected: 6963abc37356728c0575d6a62a203102ae6d97953bJeff Sharkey Alloc* m_pTestee; 702f036c55c0b72ac350e378c12b0571b22bc64dc1Jeff Sharkey}; 712f036c55c0b72ac350e378c12b0571b22bc64dc1Jeff Sharkey 722f036c55c0b72ac350e378c12b0571b22bc64dc1Jeff Sharkey} // namespace of mcldtest 732f036c55c0b72ac350e378c12b0571b22bc64dc1Jeff Sharkey 741b8ef7e3165ff9aa52a4905dafc8d0f83e7403f9Jeff Sharkey#endif 751b8ef7e3165ff9aa52a4905dafc8d0f83e7403f9Jeff Sharkey 761b8ef7e3165ff9aa52a4905dafc8d0f83e7403f9Jeff Sharkey