diff --git a/core/libs/tests/GuestAjm.cpp b/core/libs/tests/GuestAjm.cpp index db284c0321..ab33944e4f 100644 --- a/core/libs/tests/GuestAjm.cpp +++ b/core/libs/tests/GuestAjm.cpp @@ -842,6 +842,23 @@ void TestGetInfo(std::uint32_t context) { Require(sceAjmInstanceDestroy(context, instance) == 0); } +void TestGetStatistics(std::uint32_t context) { + std::uint32_t instance = 0; + Require(sceAjmInstanceCreate(context, 1, 0, &instance) == 0); + std::vector batch(4096); + AjmBatchInfo info{}; + std::vector statistics(32, 0xaa); + FormatSideband format{-1, -1, 0xaaaaaaaau, 0xaaaaaaaau, 0xaaaaaaaau, 0xaaaaaaaau, 0xaaaaaaaau, 0xaaaaaaaau}; + Require(sceAjmBatchInitialize(batch.data(), batch.size(), &info) == 0); + Require(sceAjmBatchJobGetStatistics(&info, 1.0f, statistics.data()) == 0); + Require(sceAjmBatchJobGetInfo(&info, instance, &format) == 0); + Submit(context, info); + Require(std::all_of(statistics.begin(), statistics.begin() + 24, [](std::uint8_t value) { return value == 0; })); + Require(std::all_of(statistics.begin() + 24, statistics.end(), [](std::uint8_t value) { return value == 0xaa; })); + Require(format.result == 1 && format.numChannels == 0xaaaaaaaau); + Require(sceAjmInstanceDestroy(context, instance) == 0); +} + void TestBatchBounds(std::uint32_t context) { constexpr int invalidParameter = static_cast(0x80930005); std::vector storage(128); @@ -2429,6 +2446,7 @@ int main() { TestGaplessDecode(context); TestCodecInfo(context); TestGetInfo(context); + TestGetStatistics(context); TestBatchBounds(context); TestBatchWaitRelease(context); TestInstanceHandleLifetime(context);