Files
PS5_RetroArch/tests/test_audio_ps5.py
T
Mihawk 1b849dac1d Add native PS5 PCM audio driver with verified buffering
Register audio_ps5 and select it by default. Feed native AudioOut through a bounded worker queue with byte-based writes, rate negotiation, backpressure, pause/resume and cleanup. No SDL or Opus dependency.

Validation: tools/verify.sh passes all five gates (32 unit tests, 14 evidence records). tools/run-title.sh --no-build --audio-test --watch 45 records 193536 accepted/played frames, zero errors/discards, correct channel tones confirmed by the owner. A normal --no-deploy --watch 45 run remains alive and is script-closed with zero Vulkan refusals/API failures.

Evidence: evidence/native-audio/{capture,audio-test,expectation}.json. Build identity 801df0ac6a5754c3e6a6ea688f1e49e8ddd2041aeb131a637b8c8b59f4030d55. Patch count increases from 100 to 102 for registration and default; fresh replay/idempotence verified. PS5_Vulkan unchanged.
2026-09-19 12:40:01 -04:00

18 lines
735 B
Python

"""Run the real audio driver against an explicitly clocked native output mock."""
from pathlib import Path
import subprocess
import tempfile
import unittest
ROOT = Path(__file__).resolve().parent.parent
class AudioPs5(unittest.TestCase):
def test_native_backend(self):
with tempfile.TemporaryDirectory() as td:
binary = str(Path(td) / 'audio-test')
subprocess.run(['c++', '-std=c++17', '-O2', '-pthread', '-Wall', '-Wextra', '-Werror',
'-Ivendor/retroarch', '-Ivendor/retroarch/libretro-common/include',
'tests/audio_ps5_test.cpp', '-o', binary], cwd=ROOT, check=True)
subprocess.run([binary], cwd=ROOT, check=True, timeout=15)