test(xone43c): capture reproducible USB topology evidence - #4
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ae4f6c23ae
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| for intf in "$device":*; do | ||
| [[ -d $intf ]] || continue |
There was a problem hiding this comment.
Reject captures with missing sysfs interfaces
When the USB device directory exists but one or all of its device:* interface entries are absent—for example during partial enumeration or a sysfs race—this loop silently skips them and the capture still exits successfully. In the fixture environment, removing every interface directory produced a successful capture with an empty interfaces.txt and missing.txt, so the resulting bundle can claim complete topology evidence without recording any active altsetting or driver binding. Validate the expected interface set, or at least mark a capture with no/missing interface entries as incomplete.
Useful? React with 👍 / 👎.
Summary
Observed facts
The checked-in descriptor fixture came from a physical Allen & Heath Xone:43C (
22f0:000f, revision 2.00):0x02, max packet 294, feedback IN0x850x81, max packet 294snd-usb-audioExplicitly not inferred
Interfaces 1 and 2 also expose vendor-specific altsetting 2 with 512-byte isochronous endpoints. This PR records those descriptors as
purpose-unknown; it does not claim that they provide four channels or define their packet semantics.Safety and scope
tools/xone43c-capture.shreads sysfs/procfs and filtered system metadata only. It does not open PCM/rawmidi nodes, change altsettings, stop PipeWire/Mixxx, unbindsnd-usb-audio, or capture audio/MIDI payloads. Dynamic identifiers and sensitive values are sanitized, output files are mode 0600, and every capture includes a SHA-256 manifest.No Ozzy runtime code or USB match table changed.
22f0:000fremains absent from the driver table, and the five Ploytec IDs remain unchanged.Validation
Stacked on #3.