Files
Andrei Kvapil 964bd83cf5 fix(ci): stop check-rd-presets reporting present presets as missing
The membership check piped printf into `grep -Fqx` under `set -o pipefail`.
`grep -q` exits on its first match, which can close the pipe while printf is
still in write(2); printf then fails with EPIPE, pipefail makes the pipeline
non-zero, and the negation reads that as "not found". A preset was therefore
reported missing precisely because it matched first.

It is a scheduling race, so it fired under `make -j4` in CI and not on an idle
machine. The cost was not cosmetic: `Unit & controller tests` gates `finalize`,
which gates `e2e`, so a false failure here skipped e2e and turned the required
`E2E Tests` context red, blocking merges on unrelated pull requests.

Feed grep from a here-string instead. No pipeline, nothing for pipefail to
judge, no writer to receive EPIPE. This is the only script under hack/ that
combined pipefail with a `| grep -q`.

The tests pin the two outcomes the check owes, a complete enum passing and an
incomplete one failing with the missing value named, rather than trying to win
the race: a test that only reddens when the scheduler cooperates is the flaky
kind this repo does not add. The fixture is written with jq alone so it does
not depend on which yq dialect is installed, and it creates its temp dir in the
test body because hack/cozytest.sh knows @test and nothing else.

Refs #4193

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2026-09-10 13:41:12 +02:00
..
2026-02-17 22:54:12 +01:00