Skip to content

test(usb): validate port scanning parity on macOS and Linux #1091

Description

@zackees

Context\n\nfbuild USB/serial scanning and diagnostics have currently been exercised on Windows only. The new failed-USB warning path uses Windows SetupAPI/CfgMgr32 and is intentionally empty on non-Windows, but the broader USB scan, CDC classification, bootloader detection, and port enumeration paths also need explicit cross-platform validation. macOS and Linux may expose different device names, metadata, topology, and failure states.\n\n## Proposal\n\nAudit the USB-related host scanning paths for macOS and Linux, implement platform-specific equivalents where appropriate, and establish parity tests so supported platform USB devices are discovered and classified consistently. Ensure unsupported host diagnostics degrade clearly without breaking normal port scans.\n\n## Acceptance criteria\n\n- Run build port scan on supported macOS and Linux environments with representative RP2040 CDC, RP2040 BOOTSEL/MSC, native CDC, and USB-UART bridge devices.\n- Verify serial port enumeration, VID/PID and serial extraction, CDC/bridge classification, and bootloader re-enumeration behavior on both platforms.\n- Determine how each platform exposes failed USB devices and hub/topology information; implement actionable nonfatal diagnostics where the host APIs provide it.\n- Add platform-appropriate unit/integration tests and fixtures for successful, missing, and failed USB nodes.\n- Document any unavoidable platform differences and ensure unsupported diagnostics never pretend to identify an unknown device.\n- Run the relevant host test suites on macOS and Linux in CI or documented hardware validation environments.\n\n## Related issues\n\n- Parent: #1049\n- Current Windows failed-USB diagnostic: #1087\n- Meta: FastLED/FastLED#3648

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions