MemoryPoolStateTests.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using NUnit.Framework;
  2. using Ryujinx.Audio.Renderer.Server.MemoryPool;
  3. using System.Runtime.CompilerServices;
  4. namespace Ryujinx.Tests.Audio.Renderer.Server
  5. {
  6. class MemoryPoolStateTests
  7. {
  8. [Test]
  9. public void EnsureTypeSize()
  10. {
  11. Assert.AreEqual(Unsafe.SizeOf<MemoryPoolState>(), 0x20);
  12. }
  13. [Test]
  14. public void TestContains()
  15. {
  16. MemoryPoolState memoryPool = MemoryPoolState.Create(MemoryPoolState.LocationType.Cpu);
  17. memoryPool.SetCpuAddress(0x1000000, 0x1000);
  18. memoryPool.DspAddress = 0x2000000;
  19. Assert.IsTrue(memoryPool.Contains(0x1000000, 0x10));
  20. Assert.IsTrue(memoryPool.Contains(0x1000FE0, 0x10));
  21. Assert.IsTrue(memoryPool.Contains(0x1000FFF, 0x1));
  22. Assert.IsFalse(memoryPool.Contains(0x1000FFF, 0x2));
  23. Assert.IsFalse(memoryPool.Contains(0x1001000, 0x10));
  24. Assert.IsFalse(memoryPool.Contains(0x2000000, 0x10));
  25. }
  26. [Test]
  27. public void TestTranslate()
  28. {
  29. MemoryPoolState memoryPool = MemoryPoolState.Create(MemoryPoolState.LocationType.Cpu);
  30. memoryPool.SetCpuAddress(0x1000000, 0x1000);
  31. memoryPool.DspAddress = 0x2000000;
  32. Assert.AreEqual(0x2000FE0, memoryPool.Translate(0x1000FE0, 0x10));
  33. Assert.AreEqual(0x2000FFF, memoryPool.Translate(0x1000FFF, 0x1));
  34. Assert.AreEqual(0x0, memoryPool.Translate(0x1000FFF, 0x2));
  35. Assert.AreEqual(0x0, memoryPool.Translate(0x1001000, 0x10));
  36. Assert.AreEqual(0x0, memoryPool.Translate(0x2000000, 0x10));
  37. }
  38. [Test]
  39. public void TestIsMapped()
  40. {
  41. MemoryPoolState memoryPool = MemoryPoolState.Create(MemoryPoolState.LocationType.Cpu);
  42. memoryPool.SetCpuAddress(0x1000000, 0x1000);
  43. Assert.IsFalse(memoryPool.IsMapped());
  44. memoryPool.DspAddress = 0x2000000;
  45. Assert.IsTrue(memoryPool.IsMapped());
  46. }
  47. }
  48. }