freedv-gui/test
Mooneer Salem 1665b53ef7
CI (Windows): make collect-pgo-profile wait for real audio endpoints (#1483)
"Generate PGO data" fails intermittently when a VB-Cable / VAC endpoint
isn't enumerable at the moment FreeDV starts a UT: FreeDV pops a fatal
"device cannot be found" message box and aborts.

The old "Start Windows Audio Service" step only polled WMI
Win32_SoundDevice (driver nodes, not the MMDevice endpoints FreeDV
uses), had an operator-precedence bug in its until-condition
((A -and B) -or C), ran once minutes before the test, and never checked
the specific endpoints the job needs.

* ci/Wait-AudioDevices.ps1: restarts AudioEndpointBuilder/audiosrv and
  polls "Get-AudioDevice -List" (the active-endpoint surface FreeDV
  actually enumerates) until every required playback/recording endpoint
  is present, nudging the audio stack again halfway through and dumping
  full diagnostics before failing on timeout.
* ci/Invoke-PgoProfileCollection.ps1: runs the endpoint wait +
  GeneratePGOProfiles.ps1 and retries the whole thing up to 3x, since an
  endpoint can also drop mid-run right after SoX releases the capture
  device. Partial .profraw files are cleared between attempts.
* collect-pgo-profile now calls these; the Generate PGO data timeout
  goes 10 -> 25 min to cover the retries.
* GeneratePGOProfiles.ps1: best-effort wait for the endpoints before
  each of the TX and RX passes.

The identical "Start Windows Audio Service" step in the test job is left
as-is here; this change is scoped to collect-pgo-profile.


Claude-Session: https://claude.ai/code/session_01AYJXLpaEyPTsegX93QzE1a

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-07 23:57:12 -07:00
..
fading Build AppImages as part of CI workflow. (#937) 2025-06-24 08:57:46 -07:00
GeneratePGOProfiles.ps1 CI (Windows): make collect-pgo-profile wait for real audio endpoints (#1483) 2026-09-07 23:57:12 -07:00
TestFreeDVFullDuplex.ps1 Tighten remaining audio settings to improve CI pass rate. (#1412) 2026-06-23 15:59:56 -07:00
TestFreeDVReporting.ps1 Tighten remaining audio settings to improve CI pass rate. (#1412) 2026-06-23 15:59:56 -07:00
asan_suppressions.txt Remove 800XA, 700C, 2020 and 2020B. (#889) 2025-05-26 12:29:47 -07:00
check-for-zeros.py
freedv-ctest-fullduplex.conf.tmpl Hide all modes except for RADE by default. (#1108) 2025-12-10 16:00:47 -08:00
freedv-ctest-loss.conf.tmpl Hide all modes except for RADE by default. (#1108) 2025-12-10 16:00:47 -08:00
freedv-ctest-reporting-mpp.conf.tmpl Hide all modes except for RADE by default. (#1108) 2025-12-10 16:00:47 -08:00
freedv-ctest-reporting.conf.tmpl Hide all modes except for RADE by default. (#1108) 2025-12-10 16:00:47 -08:00
freedv-ctest.conf.tmpl Hide all modes except for RADE by default. (#1108) 2025-12-10 16:00:47 -08:00
freedv-pgo.conf.tmpl Enable LTO/PGO for macOS .app build. (#1456) 2026-08-07 16:32:00 -07:00
generate_pgo_profiles.sh Enable Linux AppImage builds for Profile Guided Optimization (PGO). (#1173) 2026-01-28 13:00:49 -08:00
hamlibserver.py Ensure that PTT is actually off when opening Hamlib connection. (#1308) 2026-04-25 14:35:02 -07:00
lsan_suppressions.txt Upgrade built-in Python to 3.14.0. (#1109) 2025-11-30 19:02:40 -08:00
test_rade_loss.sh Prevent PulseAudio/pipewire from quitting during CI tests. (#1455) 2026-08-05 14:48:45 -07:00
test_rade_reporting.sh Prevent PulseAudio/pipewire from quitting during CI tests. (#1455) 2026-08-05 14:48:45 -07:00
test_zeros.sh Prevent PulseAudio/pipewire from quitting during CI tests. (#1455) 2026-08-05 14:48:45 -07:00
ubsan_suppressions.txt CI build improvements (#1075) 2025-10-31 16:18:19 -07:00