Skip to content

validate: a skipped check is an environment gap, not a failed entry - #1305

Merged
MDA2AV merged 1 commit into
mainfrom
fix/skip-is-not-no-coverage
Aug 24, 2026
Merged

validate: a skipped check is an environment gap, not a failed entry#1305
MDA2AV merged 1 commit into
mainfrom
fix/skip-is-not-no-coverage

Conversation

@MDA2AV

@MDA2AV MDA2AV commented Aug 24, 2026

Copy link
Copy Markdown
Owner

My #1304 broke CI. Reported on the #1303 run — zix-http3 job:

SKIP [h3]: no h2load-h3 image — build docker/h2load-h3.Dockerfile to validate HTTP/3
=== Results: 0 passed, 0 failed, 1 skipped ===
FAIL: no checks ran for zix-http3 — every subscribed test (baseline-h3 static-h3) ...

What I got wrong

#1304 made a run with no assertions fail, so an h3-only entry could not show a green check while nothing had been verified. That reasoning holds for genuine missing coverage. It does not hold for the case CI actually hits.

The per-framework validate job runs on ubuntu-latest. Load-generator images are built by benchmark.sh on the self-hosted runner, so h2load-h3 does not exist on the validate runner and never will under the current workflow. The h3 checks skip, the run ends 0/0, and #1304 turned that into a hard failure — zix-http3 fails for a missing image on the runner, not for anything about the entry.

Fix

Split the two causes:

situation verdict
coverage exists, its tool was absent WARNING: … is UNVALIDATED, exit 0
validate.sh has no checks at all for the subscribed tests FAIL, exit 1

Nothing is proven in the first case, but nothing is wrong with the entry either — so it says so plainly rather than failing it.

Verification

Both reachable paths, against zix-http3:

condition result
h2load-h3 present 2 passed, 0 failed, exit 0
h2load-h3 absent (CI's situation) 0 passed, 0 failed, 1 skipped, WARNING, exit 0

Still open

Real h3 coverage on CI needs the image to exist there — built and cached in the workflow, or pulled from a registry. Neither is in this change; the h3 checks stay fully effective locally and on the self-hosted runner, where the image is present.

🤖 Generated with Claude Code

#1304 made a run with no assertions fail, to stop h3-only entries showing a
green check while nothing had been verified. That was right for the case it
was aimed at and wrong for the one CI actually hits.

The per-framework validate job runs on ubuntu-latest. Load-generator images
are built by benchmark.sh on the self-hosted runner, so h2load-h3 does not
exist there and never will under the current workflow. The h3 checks therefore
skip, the run ends 0 passed / 0 failed, and #1304 turned that into a hard
failure -- zix-http3 now fails CI for a missing image on the runner rather
than for anything about the entry:

  SKIP [h3]: no h2load-h3 image ...
  === Results: 0 passed, 0 failed, 1 skipped ===
  FAIL: no checks ran for zix-http3 ...

Split the two causes. If coverage exists and its tool was absent, say plainly
that the entry is UNVALIDATED and pass -- nothing was proven, but nothing is
wrong with the entry either. Fail only when validate.sh genuinely has no
checks for anything the entry subscribes to.

Verified both reachable paths against zix-http3:

  h2load-h3 present  -> 2 passed, 0 failed, exit 0
  h2load-h3 absent   -> 0 passed, 0 failed, 1 skipped, WARNING, exit 0

Getting real h3 coverage on CI needs the image to exist there -- either built
and cached in the workflow, or pulled from a registry. Neither is in this
change.
@MDA2AV
MDA2AV merged commit eacb543 into main Aug 24, 2026
127 of 136 checks passed
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