ci: run the test suite on every PR; add fs_Hz and S-param reload regression coverage - #61
Merged
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Make CI actually run the tests, and strengthen regression coverage (findings C2, T1, T2, T3).
format+buildjobs; the entire suite ran only at minor/major release tags, so regressions passed CI on every PR. Added aTeststep (xvfb-run ctest) toci.yml.IdealFilter preserves fs_Hztest that compared0.0 == 0.0and could never fail.ADC DDC output grid spanstest was not failing: the bracket-paren[...)in its name brokecatch_discover_tests' unquoted list parsing on every platform, merging it and ~69 later tests into one;-joined CTest entry that Catch2 rejects as "Invalid Filter". Renamed toADC DDC output grid spans from -Fs/4 to Fs/4(engine math verified correct) and removed the exclusion. Added a CI guard for the MinGW TEST_CASE registration ceiling (--list-testscount floor inrelease.yml) and updatedtests/AGENTS.mdto the verified 223.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-onlyxvfb-run).Notes for merging (verified by test-merging all 6 branches in order)
sParamMode/setSParamFilenames;refactor/engine-unificationrenames them, and the rename collides with this branch's additions intests/test_project_file.cpp(the 4 S-param lines in the Fix S-param mode not reloading on project deserialize #56 test) andtests/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.fix/crash-and-containment→ this branch (clean) →refactor/engine-unification(resolve the two conflict files above) →fix/dsp-accuracy→fix/ui-state→refactor/cleanup(all clean).