Problem
ci_test_paths_test.sh collects workflow paths that do not resolve on disk
and asserts that set is empty. An extractor that stops matching finds nothing
to check, so the assertion holds.
Proven by mutation — renaming the test_path: pattern leaves all three tests
green. Nothing goes red at all, unlike #1159 where the inverse-direction
tests still failed.
That matters here because this file exists precisely because CI path rot has
shipped twice: once when #960 moved paths, and again when coverage.yml
globbed tests/unit/*_test.sh in a shell step and its nightly run was red for
days, unnoticed because that workflow is non-blocking.
Fix
Assert both extractors still find the paths they parse. Floors sit under the
current counts — 18 test_path: keys and 3 distinct tests/ references once
the workflows are deduplicated (fewer than it looks: most jobs share paths).
Verified against two mutations: breaking the test_path: pattern, and pointing
the workflow directory somewhere that does not exist. Both now fail.
Problem
ci_test_paths_test.shcollects workflow paths that do not resolve on diskand asserts that set is empty. An extractor that stops matching finds nothing
to check, so the assertion holds.
Proven by mutation — renaming the
test_path:pattern leaves all three testsgreen. Nothing goes red at all, unlike #1159 where the inverse-direction
tests still failed.
That matters here because this file exists precisely because CI path rot has
shipped twice: once when #960 moved paths, and again when
coverage.ymlglobbed
tests/unit/*_test.shin a shell step and its nightly run was red fordays, unnoticed because that workflow is non-blocking.
Fix
Assert both extractors still find the paths they parse. Floors sit under the
current counts — 18
test_path:keys and 3 distincttests/references oncethe workflows are deduplicated (fewer than it looks: most jobs share paths).
Verified against two mutations: breaking the
test_path:pattern, and pointingthe workflow directory somewhere that does not exist. Both now fail.