예제 #1
0
Allocator::Allocator(const Allocator &other)
:m_chunk({0,nullptr})
,m_size(0)
,m_mem(nullptr)
{
    this->Alloc(other.GetSize());
    memmove(this->GetPtr(), other.GetPtr(), other.GetSize());
}
예제 #2
0
#define CATCH_CONFIG_MAIN

#include <iostream>
#include "catch.hpp"

#include "allocator.h"

TEST_CASE("MemoryAllocator")
{
	SECTION("Ctor")
	{
		SECTION("Default")
		{
			Allocator alloc;
			CHECK(alloc.GetSize() == DEFAULT_MAX_CAPACITY);
			CHECK(alloc.GetMinChunkSize() == DEFAULT_MIN_CHUNK_SIZE);
		}

		SECTION("pow of 2 vals")
		{
			Allocator alloc(1024, 16);
			CHECK(alloc.GetSize() == 1024);
			CHECK(alloc.GetMinChunkSize() == 16);
		}

		SECTION("wrong vals")
		{
			Allocator alloc(2048, 3);
			CHECK(alloc.GetSize() == 2048);
			CHECK(alloc.GetMinChunkSize() == 16);
		}
예제 #3
0
ProxyAllocator::ProxyAllocator(Allocator &allocator)
	: Allocator(allocator.GetSize(), allocator.GetStart()), allocator(allocator)
{

}