2026-10-28 runtime-small-2 (batch 2026-10-27-b7, linux-cloud)¶
Small portable runtime gaps. On inspection most of the listed items were already implemented on the base (6f70b92); this session closed what was still open and recorded the rest honestly. Everything is tested, not verified (Linux cloud, no Mac).
Done¶
- (6)
test_timescalejump check: the fixed 2 ms threshold on the largest guest-clock step across 2000 speed changes is replaced by a measured bound: each step may be at most 7.5x the real time (CLOCK_MONOTONIC) that passed between the two reads, plus 100 us. A host preempted for milliseconds no longer fails it. Tested on Linux (54 of 55 checks pass there; the one failure, "100 ms real at 2x = ... ticks", is the Linux host stub ofruntime_guest_ticks, unrelated and pre-existing in this harness). - (4) audin permission flow hook:
napple_audin_set_permission_hook(fn, user)(audio.h,audin_source.c). Called before themiccapture unit starts; 0 makesnapple_audin_install_source_spec("mic")fail with the newNAPPLE_AUDIO_E_DENIED(-8) and the guest keeps recording silence. NULL (default) = no check. Capture default unchanged (silence unlessNAPPLE_AUDIN_SOURCE). Test inaudio/tests/test_audin_source.c(+3). Not wired: nothing in the frontend/runtime installs a hook yet (frontend is not mine); Mac check: install a hook that callsAVCaptureDevice requestAccessForMediaType:and run withNAPPLE_AUDIN_SOURCE=mic. - (8) Linux
ipcfuzz target: it no longer linked (decoder_vt.c,media_gfx_glue.cpulled in the macOS media/gfx libs). They are now left out ofFZ_SERVICESintests/fuzz/fuzz.mk.ipc_mutbuilds; seeds + 1,068,328 mutations (seed 7, 90 s) found no crash;make fuzz-regressall green. Needslibclang-rt-dev(andlibopus-devfor the Opus path). - (7) tests for the uncalled core API: already present on the base (
tests/test_svc_unused_core.c, commit 9b5ee2a, 28 checks: all eight functions); nothing to add. The glue-up note's list item 9 is stale.
Already implemented on the base, nothing to add (and why)¶
- (1) audren performance metrics: header (format 1 0x10 / format 2 0x20), entries, details, history and tests exist (
audren.cwrite_performance,test_audren.c). The task asks to check them "against the documented structure"; the documentation (yuzu / Ryujinx sources) is not reachable (raw.githubusercontent.com returns 404 for both) and this repo has no copy, so the layout stays "recalled, unverified" (comment inaudren.c). Blocked on a reference; Mac/real-title check: a title that reads the performance frame back. - (2) GameCube lifo trigger / Lark-NES bits:
napple_hid_push_gc_trigger,napple_hid_set_lark_type, style bits 5..9, tests ininput/tests/test_styles.c(31 checks) exist and pass. Offsets (0x4C20, 17 entries of 0x18) remain "recalled, unverified". - (3) IR camera tera / pointing (DPD): software model exists in
irs_core.c(ir_tera_compute,ir_dpd_compute), commands 310/312 areIPC_IMPL, teststest_svc_irs*.c. The tera plugin firmware is not and cannot be simulated; real hardware behaviour needs a console. - (5) bcat layouts / storage:
bcat_core.[ch]has the 0x200 progress record, 0x38 directory entry, name rules, MD5 (RFC 1321 vectors) and a folder provider; 58 checks. Layouts remain from switchbrew memory.
Verified here (Linux cloud: tested, not verified)¶
sh runtime/tests/linux/run.sh: 47 built and ran, 0 failed (applet*, audio, fs, fs_dataid, time do not build on Linux, as before);python3 -I runtime/tests/linux/check_known_calls.py: 705 rows, 0 failed.make -C audio -f Makefile.linux test: all suites green (audin_source 47 checks).make -C input -f Makefile.linux test: all green.make -C runtime fuzz-regressand theipcfuzz run above.- Not run:
make -C runtime test test-services test-host(macOS-only objects), the Macmake -C audio test/make -C input test.
Files¶
runtime/tests/test_timescale.c, runtime/tests/fuzz/fuzz.mk, audio/include/napple_audio.h, audio/src/audin_source.c, audio/tests/test_audin_source.c.