mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 20:39:01 +00:00
38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
using System;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using Native = System.UInt32;
|
|
|
|
namespace Cosmos.Core.Memory.Test
|
|
{
|
|
[TestClass]
|
|
public class MemoryTests
|
|
{
|
|
|
|
[TestMethod]
|
|
public unsafe void RATTest()
|
|
{
|
|
var xRAM = new byte[128 * 1024 * 1024]; // 128 MB
|
|
xRAM[0] = 1;
|
|
fixed (byte* xPtr = xRAM)
|
|
{
|
|
RAT.Debug = true;
|
|
//RAT.Init(xPtr, (Native)xRAM.LongLength);
|
|
RAT.Init(xPtr, (Native) xRAM.Length);
|
|
|
|
Native xRatPages = RAT.GetPageCount(RAT.PageType.RAT);
|
|
Assert.IsTrue(xRatPages > 0);
|
|
|
|
var xFreePages = RAT.GetPageCount(RAT.PageType.Empty);
|
|
Assert.IsTrue(xFreePages > 0);
|
|
|
|
var x1 = (Int32*) Heap.Alloc(sizeof(Int32));
|
|
var xFreePages2 = RAT.GetPageCount(RAT.PageType.Empty);
|
|
Assert.IsTrue(xFreePages - xFreePages2 == 1);
|
|
//
|
|
Heap.Free(x1);
|
|
var xFreePages3 = RAT.GetPageCount(RAT.PageType.Empty);
|
|
Assert.IsTrue(xFreePages3 == xFreePages2 + 1);
|
|
}
|
|
}
|
|
}
|
|
}
|