fix(installer): avoid pipefail marker race
This commit is contained in:
@@ -56,7 +56,11 @@ case "$mode" in
|
||||
|| { echo "[fixture-suite] invalid $singular marker name: $name" >&2; exit 2; }
|
||||
[[ -d "$run_dir" ]] \
|
||||
|| { echo "[fixture-suite] $dimension state was not initialized: $run_id" >&2; exit 1; }
|
||||
expected_names | grep -Fxq -- "$name" \
|
||||
if ! expected_snapshot="$(expected_names)"; then
|
||||
echo "[fixture-suite] failed to read expected $dimension" >&2
|
||||
exit 1
|
||||
fi
|
||||
grep -Fxq -- "$name" <<<"$expected_snapshot" \
|
||||
|| { echo "[fixture-suite] $singular is not in the expected set: $name" >&2; exit 1; }
|
||||
: > "$run_dir/$name.ran"
|
||||
;;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
SUBJECT="$ROOT/tools/verify-greenfield-execution-coverage.sh"
|
||||
SUBJECT="${GREENFIELD_COVERAGE_SUBJECT:-$ROOT/tools/verify-greenfield-execution-coverage.sh}"
|
||||
GATE="${GREENFIELD_COVERAGE_GATE:-$ROOT/tools/verify-greenfield-execution-coverage-gate.sh}"
|
||||
WORKFLOW="$ROOT/.woodpecker/greenfield-install.yml"
|
||||
INSTALLER="${GREENFIELD_E2E_INSTALLER:-$ROOT/tools/e2e-install-test.sh}"
|
||||
@@ -66,6 +66,15 @@ done
|
||||
complete_output="$(bash "$SUBJECT" check cases "$manifest" "$state_root" "$run_id")"
|
||||
grep -qF '[fixture-suite] cases_defined=3 cases_executed=3' <<<"$complete_output"
|
||||
|
||||
# A successful early match must consume the full producer and remain green under pipefail.
|
||||
large_manifest="$TMP/large-expected.tsv"
|
||||
awk 'BEGIN {
|
||||
print "a-target\texit\t1"
|
||||
for (i = 0; i < 20000; i++) printf "z-case-%05d\texit\t1\n", i
|
||||
}' > "$large_manifest"
|
||||
bash "$SUBJECT" init cases "$large_manifest" "$state_root" large-set
|
||||
bash "$SUBJECT" mark cases "$large_manifest" "$state_root" large-set a-target
|
||||
|
||||
# The production manifest, including comments, initializes and checks.
|
||||
production_manifest="$ROOT/tools/fixtures/greenfield-expected-red.tsv"
|
||||
production_arms="$ROOT/tools/fixtures/greenfield-expected-arms.txt"
|
||||
|
||||
Reference in New Issue
Block a user