public void FixedMemoryPoolAllocatorTest() { using FixedMemoryPoolAllocator allocator = new FixedMemoryPoolAllocator(10, 400); unsafe { int *p = allocator.Allocate <int>(4); Assert.AreEqual(0, p[0]); Assert.AreEqual(0, p[1]); Assert.AreEqual(0, p[2]); Assert.AreEqual(0, p[3]); for (int i = 0; i < 4; i++) { p[i] = i + 1; } Assert.AreEqual(1, p[0]); Assert.AreEqual(2, p[1]); Assert.AreEqual(3, p[2]); Assert.AreEqual(4, p[3]); allocator.Free(p); Assert.Throws <OutOfMemoryException>(() => allocator.Allocate(600)); } }
public void Setup() { int AllocatorSize = Bytes * 2; var defaultAlloc = Allocator.Default; if (defaultAlloc == null) { throw new Exception("Null default allocator"); } heapAllocator = DefaultHeapAllocator.Instance; localAllocator = DefaultLocalAllocator.Instance; cAllocator = DefaultCppAllocator.Instance; arenaAllocator = new ArenaAllocator(AllocatorSize); stackAllocator = new StackAllocator(AllocatorSize); fixedPoolAllocator = new FixedMemoryPoolAllocator(10, AllocatorSize); poolAllocator = new MemoryPoolAllocator(AllocatorSize); }
public void FixedMemoryPoolAllocatorTest1() { using FixedMemoryPoolAllocator allocator = new FixedMemoryPoolAllocator(10, 400); unsafe { IntPtr *ptrs = stackalloc IntPtr[10]; for (int i = 0; i < 10; i++) { ptrs[i] = (IntPtr)allocator.Allocate(100); } Assert.Throws <OutOfMemoryException>(() => { var p = allocator.Allocate <IntPtr>(5); }); for (int i = 0; i < 10; i++) { allocator.Free(ptrs[i].ToPointer()); } } }