Skip to content

ci: run the test suite on every PR; add fs_Hz and S-param reload regression coverage - #61

Merged
striderZA merged 1 commit into
masterfrom
ci/run-tests-on-pr
Aug 10, 2026
Merged

ci: run the test suite on every PR; add fs_Hz and S-param reload regression coverage#61
striderZA merged 1 commit into
masterfrom
ci/run-tests-on-pr

Conversation

@striderZA

@striderZA striderZA commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Summary

Make CI actually run the tests, and strengthen regression coverage (findings C2, T1, T2, T3).

Verification

  • tests.exe: 216 cases / 65534 assertions; test_signal_domain.exe: 35 cases / 68 assertions (was 31/64; +4 tests).
  • ctest --test-dir build --timeout 120 -E "test_ui|Benchmark": 100% pass locally (the exact ci.yml invocation, minus Linux-only xvfb-run).
  • Both workflows parse as valid YAML.

Notes for merging (verified by test-merging all 6 branches in order)

  • This branch keeps the pre-rename sParamMode/setSParamFile names; refactor/engine-unification renames them, and the rename collides with this branch's additions in tests/test_project_file.cpp (the 4 S-param lines in the Fix S-param mode not reloading on project deserialize #56 test) and tests/test_signal_domain.cpp (test-block insertion overlap). Resolution is additive: keep the renamed API lines from that branch (old names no longer compile after it lands) and keep both test sets — this branch's 4 pass-through fs_Hz tests plus that branch's S-param-mode fs_Hz test.
  • Verified merge order: fix/crash-and-containmentthis branch (clean) → refactor/engine-unification (resolve the two conflict files above) → fix/dsp-accuracyfix/ui-staterefactor/cleanup (all clean).

…ession coverage

C2: the pull-request workflow built but NEVER ran a test — the entire suite ran only at minor/major release tags. Add a Test step (xvfb-run ctest) to ci.yml so regressions fail on every PR.
T1: add fs_Hz propagation tests for combiner, attenuator (manual), equalizer, and ideal_filter — the pass-through engines the #54 fix touched but never covered — and fix the vacuous ideal_filter 'preserves fs_Hz' test that compared 0.0 == 0.0.
T2: strengthen the #56 S-param reload test to drive a tone through the loaded amplifier and compare output against the interpolated S21 (catches the reloaded-but-ideal-gain bug the old flag-only assertions missed); fix mislabeled issue numbers.
T3: root-cause the Windows 'ADC DDC output grid spans' exclusion: the bracket-paren '[...)' in the TEST_CASE name broke catch_discover_tests' unquoted list parsing on all platforms, merging it and every later test into one ';'-joined CTest entry that Catch2 rejects as Invalid Filter. Rename to 'from -Fs/4 to Fs/4' (engine math was correct) and remove the release.yml exclusion; document the remaining test_ui exclusion. Add a CI guard for the MinGW TEST_CASE registration ceiling (--list-tests count floor in release.yml) and update tests/AGENTS.md to the verified 223.
@striderZA
striderZA merged commit 1112b45 into master Aug 10, 2026
2 checks passed
@striderZA
striderZA deleted the ci/run-tests-on-pr branch August 10, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant