JacobLinCool / JacobLinCool/mars

test(hal): add real virtual-input acceptance test with external producer

Open
#41 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
0
Forks
1
Avg merge
10m
Merged PRs (30d)
3

Description

## Context
MARS has good unit coverage, but downstream adoption needs proof that the full HAL path works in the real macOS audio stack: install driver, create virtual input, write audio from an external producer, select/read it from a client app, and verify silence on producer absence.

## Proposed test/runbook
Add an acceptance test or documented harness that exercises:
- signed/stapled `mars.driver` installed in `/Library/Audio/Plug-Ins/HAL`
- `marsd` apply of a single virtual input
- external producer writing a known 48 kHz mono/stereo Float32 signal
- CoreAudio client reading from the virtual input
- underrun/producer-exit behavior returning silence
- cleanup after test

## Acceptance criteria
- Automated where feasible; clearly marked manual where macOS permissions/signing require it.
- Captures logs/status/doctor output for failures.
- Verifies ring data actually reaches the HAL virtual input, not just daemon internal routing.
- Includes at least one QuickTime/Zoom/Meet-oriented manual check in docs.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the existing HAL installation flow, marsd apply path, and any status or doctor commands. Build or document a harness around a signed mars.driver, an external 48 kHz Float32 producer, and a CoreAudio client, then verify captured logs, producer-exit silence, and cleanup. Done means the real virtual input path is tested, with manual QuickTime, Zoom, or Meet checks clearly marked.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
audio-video-rtc, operating-systems, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.