Skip to content

Surface test counts in CI; bump Node 20 actions; ignore __pycache__#72

Merged
kmatzen merged 1 commit into
mainfrom
ci/surface-skips-and-bump-actions
Jul 19, 2026
Merged

Surface test counts in CI; bump Node 20 actions; ignore __pycache__#72
kmatzen merged 1 commit into
mainfrom
ci/surface-skips-and-bump-actions

Conversation

@kmatzen

@kmatzen kmatzen commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Fixes #66, fixes #68.

Skipped tests were invisible (#66)

ctest reports pass/fail for the binary as a whole, and --output-on-failure hides Catch2's summary on success — so a green build recorded nothing about how many cases actually ran.

A case that starts skipping stays present in --list-tests (so the #65 guard misses it) and needs no fixture (so the #63 guard misses it too), yet exercises nothing.

This is not hypothetical. #70 was a completely broken FFV1 write path — avcodec_open2 failing on every call — hidden behind exactly this for however long it had been there. Two tests called SKIP() and ctest said "100% tests passed".

Every codec these tests need is installed in CI, so a skip there is a real gap rather than graceful degradation. The check now prints the counts and fails the build on any skip.

Two details worth review:

  • Default console reporter, not --reporter compact. I tried compact first; it omits the skip count entirely, so the grep would never have fired — a check that silently matches nothing, which is the whole failure mode being fixed.
  • Verified both directions against real output: the summary line from a run that had skips (test cases: 41 | 39 passed | 2 skipped) matches the pattern, and the current clean run does not false-positive.

Ordering note: this had to land after #71, since it would have failed CI while the FFV1 bug was live. That is the correct behaviour, but it needed the bug fixed first.

Node 20 actions (#68)

actions/checkout@v4v5 and actions/setup-python@v5v6 across all three workflows. Both target Node 20, which GitHub is force-running on Node 24 behind a shim it explicitly calls temporary. When that goes, ci.yml, tla.yml and release.yml break at once for reasons unrelated to any change here.

actions/setup-java@v4 and the artifact actions did not appear in the deprecation warnings, so they are left alone.

Housekeeping

__pycache__/ and *.py[cod] added to .gitignore — they have been dirtying git status since the Python bindings landed.

🤖 Generated with Claude Code

ctest reports pass/fail for the binary as a whole, and --output-on-failure
hides Catch2's summary on success, so a green build recorded nothing about
how many cases actually ran. A case that starts skipping stays present in
--list-tests (so the #65 guard misses it) and needs no fixture (so the #63
guard misses it too), yet exercises nothing.

That is not hypothetical: #70 was a completely broken FFV1 path hidden
behind exactly this, for however long it had been there.

Every codec these tests need is installed in CI, so a skip there is a real
gap rather than graceful degradation, and the check fails the build. It
uses the default console reporter deliberately -- --reporter compact omits
the skip count entirely, so the grep would never fire. Verified both
directions against real output: the line from a run with skips matches, the
current clean run does not.

Also bumps actions/checkout@v4 -> v5 and actions/setup-python@v5 -> v6
across all three workflows. Both target Node 20, which GitHub is currently
force-running on Node 24 behind a shim it calls temporary; when that goes
they break, for reasons unrelated to any change here.

And adds __pycache__/ to .gitignore, which has been dirtying git status
since the Python bindings landed.

Fixes #66, fixes #68

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kmatzen
kmatzen merged commit f68bb41 into main Jul 19, 2026
4 checks passed
@kmatzen
kmatzen deleted the ci/surface-skips-and-bump-actions branch July 19, 2026 00:12
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.

CI actions target Node 20, which GitHub is removing Skipped tests are invisible to CI

1 participant