sharpemu/tests/SharpEmu.Libs.Tests/VideoOut/GuestIndexBufferLeaseTests.cs

36 lines
867 B
C#

// Copyright (C) 2026 SharpEmu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
using SharpEmu.Libs.Gpu;
using Xunit;
namespace SharpEmu.Libs.Tests.VideoOut;
public sealed class GuestIndexBufferLeaseTests
{
[Fact]
public void RecordCopiesReturnPoolLeaseOnlyOnce()
{
var data = GuestDataPool.Shared.Rent(12);
var lease = new GuestIndexBufferLease(data);
var buffer = new GuestIndexBuffer(
data,
Length: 12,
Is32Bit: false,
Pooled: true,
lease);
var copy = buffer with { };
try
{
Assert.True(copy.TryReturnPooledData());
Assert.True(buffer.LeaseReturned);
Assert.False(buffer.TryReturnPooledData());
}
finally
{
buffer.TryReturnPooledData();
}
}
}