Use disposable Windows test machines or VM snapshots. Development certificates and Windows test-signing policy must never be enabled on an ordinary user's machine. Record OS build, Secure Boot state, package SHA-256, driver version, test certificate thumbprint, Sunshine revision, and client revision for every run.
- Release x64 solution build passes with no compiler errors.
ZakoVirtualGamepadTests.exepasses.- Inf2Cat reports zero errors and zero warnings.
verify-package.ps1verifies every packaged file.- CAT and DLL signer thumbprints match the exported development certificate.
- Snapshot the test system.
- Enable test-signing policy manually if required and reboot.
- Run
install-driver.ps1 -TrustDevelopmentCertificateelevated. - Confirm
ROOT\DEVGEN\ZAKOVIRTUALGAMEPADis started. - Run
ZakoVirtualGamepadCli.exe infoand verify protocol/capabilities. - Run
ZakoVirtualGamepadCli.exe hold 60and verify one SonyVID_054C&PID_0CE6HID child appears and disappears when the tool exits.
Failure messages must distinguish package trust, root-device start, control device access, ABI mismatch, and VHF child creation. A generic “driver failed” is not acceptable UX.
Test on Windows 10 22H2 and each supported Windows 11 release:
| Consumer | Discovery | Buttons/axes | Motion | Touch | Battery | Feedback |
|---|---|---|---|---|---|---|
| joy.cpl / Game Controllers | N/A | N/A | N/A | N/A | ||
| SDL gamepad test | ||||||
| Steam Input controller test | ||||||
| Chromium Gamepad API | ||||||
| Native DualSense title A | ||||||
| Native DualSense title B |
For feedback, record raw report bytes as well as normalized rumble, RGB, player-LED, mute-LED, and adaptive-trigger fields. A game producing no feedback is not proof of parser failure; first confirm it wrote an HID output report.
Exercise 125, 250, 500, and 1000 Hz for at least ten minutes each. Record submit latency p50/p95/p99/max, rejected submissions, CPU usage of Sunshine and the UMDF host, and visible input stalls. The release target is 250 Hz with no loss; higher rates are compatibility measurements, not a guaranteed user setting.
- Create/destroy 1,000 times and confirm no orphan HID children.
- Terminate the owning process and confirm handle-close cleanup.
- Disconnect/reconnect Moonlight during active feedback.
- Test sleep/resume and reboot.
- Run up to four controller handles concurrently.
- Verify existing ViGEm Xbox 360 and DS4 backends remain functional.
- Verify HidHide configurations do not accidentally hide the virtual DS5 from the game or expose duplicate physical/virtual devices.
Test clean install, same-version repair, upgrade, downgrade rejection policy, device-only removal, full Driver Store removal, and reinstall after reboot. Normal uninstall must not remove ViGEm or unrelated HID packages. Restore the test snapshot after certificate and signing-policy validation.
- No crash, hang, orphan device, or verifier finding.
- Input works in every supported consumer class.
- Feedback succeeds in at least one captured native DualSense consumer and one Steam/SDL path, or unsupported paths are accurately disclosed in Sunshine.
- Sunshine reports actionable fallback to ViGEm DS4 on every driver failure.
- Production package uses the approved commercial or Microsoft signing path; no test certificate ships.