mirror of
https://github.com/par274/sharpemu.git
synced 2026-07-25 20:28:48 +08:00
7b950166d7
* fix(remoteplay): stub Initialize and GetConnectionStatus as disconnected Titles probe Remote Play during pad/network bring-up; unresolved imports returned NOT_FOUND. Report initialized + disconnected so callers take the normal offline path. Co-authored-by: Cursor <cursoragent@cursor.com> * chore: retrigger gameplay CI for PR #536 Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
// Copyright (C) 2026 SharpEmu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
using SharpEmu.HLE;
|
|
using SharpEmu.Libs.Remoteplay;
|
|
using Xunit;
|
|
|
|
namespace SharpEmu.Libs.Tests.Remoteplay;
|
|
|
|
public sealed class RemoteplayExportsTests
|
|
{
|
|
private const ulong MemoryBase = 0x1_0000_0000;
|
|
private const ulong StatusAddress = MemoryBase + 0x100;
|
|
|
|
private static CpuContext CreateContext(out FakeCpuMemory memory)
|
|
{
|
|
memory = new FakeCpuMemory(MemoryBase, 0x1000);
|
|
return new CpuContext(memory, Generation.Gen5);
|
|
}
|
|
|
|
[Fact]
|
|
public void Initialize_Succeeds()
|
|
{
|
|
var ctx = CreateContext(out _);
|
|
|
|
var result = RemoteplayExports.RemoteplayInitialize(ctx);
|
|
|
|
Assert.Equal(0, result);
|
|
}
|
|
|
|
[Fact]
|
|
public void GetConnectionStatus_WritesDisconnectedStatus()
|
|
{
|
|
var ctx = CreateContext(out var memory);
|
|
ctx[CpuRegister.Rdi] = 0x1000_0000;
|
|
ctx[CpuRegister.Rsi] = StatusAddress;
|
|
memory.TryWrite(StatusAddress, stackalloc byte[] { 0xFF, 0xFF, 0xFF, 0xFF });
|
|
|
|
var result = RemoteplayExports.RemoteplayGetConnectionStatus(ctx);
|
|
|
|
Assert.Equal(0, result);
|
|
var status = new byte[4];
|
|
Assert.True(ctx.Memory.TryRead(StatusAddress, status));
|
|
Assert.Equal(0, status[0]);
|
|
}
|
|
|
|
[Fact]
|
|
public void GetConnectionStatus_NullOutPointerStillSucceeds()
|
|
{
|
|
var ctx = CreateContext(out _);
|
|
ctx[CpuRegister.Rdi] = 0x1000_0000;
|
|
ctx[CpuRegister.Rsi] = 0;
|
|
|
|
var result = RemoteplayExports.RemoteplayGetConnectionStatus(ctx);
|
|
|
|
Assert.Equal(0, result);
|
|
}
|
|
}
|