diff options
| author | TSR Berry <20988865+TSRBerry@users.noreply.github.com> | 2023-04-26 04:34:16 +0200 |
|---|---|---|
| committer | Mary <thog@protonmail.com> | 2023-04-27 23:51:14 +0200 |
| commit | 609abc8b9b3c05a63bef94c2133550b3c07f97b0 (patch) | |
| tree | 2d1e27f0256c8f411ad55de9ccbb3d598f6c7237 /src/Ryujinx.Memory.Tests/Tests.cs | |
| parent | cee712105850ac3385cd0091a923438167433f9f (diff) | |
Rename Ryujinx.Memory.Tests to Ryujinx.Tests.Memory
Diffstat (limited to 'src/Ryujinx.Memory.Tests/Tests.cs')
| -rw-r--r-- | src/Ryujinx.Memory.Tests/Tests.cs | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/src/Ryujinx.Memory.Tests/Tests.cs b/src/Ryujinx.Memory.Tests/Tests.cs deleted file mode 100644 index 2717b76a..00000000 --- a/src/Ryujinx.Memory.Tests/Tests.cs +++ /dev/null @@ -1,110 +0,0 @@ -using NUnit.Framework; -using System; -using System.Runtime.InteropServices; - -namespace Ryujinx.Memory.Tests -{ - public class Tests - { - private const ulong MemorySize = 0x8000; - - private MemoryBlock _memoryBlock; - - [SetUp] - public void Setup() - { - _memoryBlock = new MemoryBlock(MemorySize); - } - - [TearDown] - public void Teardown() - { - _memoryBlock.Dispose(); - } - - [Test] - public void Test_Read() - { - Marshal.WriteInt32(_memoryBlock.Pointer, 0x2020, 0x1234abcd); - - Assert.AreEqual(_memoryBlock.Read<int>(0x2020), 0x1234abcd); - } - - [Test] - public void Test_Write() - { - _memoryBlock.Write(0x2040, 0xbadc0de); - - Assert.AreEqual(Marshal.ReadInt32(_memoryBlock.Pointer, 0x2040), 0xbadc0de); - } - - [Test] - // Memory aliasing tests fail on CI at the moment. - [Platform(Exclude = "MacOsX")] - public void Test_Alias() - { - using MemoryBlock backing = new MemoryBlock(0x10000, MemoryAllocationFlags.Mirrorable); - using MemoryBlock toAlias = new MemoryBlock(0x10000, MemoryAllocationFlags.Reserve | MemoryAllocationFlags.ViewCompatible); - - toAlias.MapView(backing, 0x1000, 0, 0x4000); - toAlias.UnmapView(backing, 0x3000, 0x1000); - - toAlias.Write(0, 0xbadc0de); - Assert.AreEqual(Marshal.ReadInt32(backing.Pointer, 0x1000), 0xbadc0de); - } - - [Test] - // Memory aliasing tests fail on CI at the moment. - [Platform(Exclude = "MacOsX")] - public void Test_AliasRandom() - { - using MemoryBlock backing = new MemoryBlock(0x80000, MemoryAllocationFlags.Mirrorable); - using MemoryBlock toAlias = new MemoryBlock(0x80000, MemoryAllocationFlags.Reserve | MemoryAllocationFlags.ViewCompatible); - - Random rng = new Random(123); - - for (int i = 0; i < 20000; i++) - { - int srcPage = rng.Next(0, 64); - int dstPage = rng.Next(0, 64); - int pages = rng.Next(1, 65); - - if ((rng.Next() & 1) != 0) - { - toAlias.MapView(backing, (ulong)srcPage << 12, (ulong)dstPage << 12, (ulong)pages << 12); - - int offset = rng.Next(0, 0x1000 - sizeof(int)); - - toAlias.Write((ulong)((dstPage << 12) + offset), 0xbadc0de); - Assert.AreEqual(Marshal.ReadInt32(backing.Pointer, (srcPage << 12) + offset), 0xbadc0de); - } - else - { - toAlias.UnmapView(backing, (ulong)dstPage << 12, (ulong)pages << 12); - } - } - } - - [Test] - // Memory aliasing tests fail on CI at the moment. - [Platform(Exclude = "MacOsX")] - public void Test_AliasMapLeak() - { - ulong pageSize = 4096; - ulong size = 100000 * pageSize; // The mappings limit on Linux is usually around 65K, so let's make sure we are above that. - - using MemoryBlock backing = new MemoryBlock(pageSize, MemoryAllocationFlags.Mirrorable); - using MemoryBlock toAlias = new MemoryBlock(size, MemoryAllocationFlags.Reserve | MemoryAllocationFlags.ViewCompatible); - - for (ulong offset = 0; offset < size; offset += pageSize) - { - toAlias.MapView(backing, 0, offset, pageSize); - - toAlias.Write(offset, 0xbadc0de); - Assert.AreEqual(0xbadc0de, backing.Read<int>(0)); - - toAlias.UnmapView(backing, offset, pageSize); - } - } - } -}
\ No newline at end of file |
