Cosmos/Tests/Cosmos.Core.Memory.Test/UnitTest1.cs
2018-08-07 21:18:56 -05:00

48 lines
1.4 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 OldHeapTest()
{
var xRAM = new byte[128 * 1024 * 1024]; // 128 MB
xRAM[0] = 1;
fixed (byte* xPtr = xRAM)
{
}
Assert.IsTrue(true);
}
[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);
}
}
}
}