#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" TMP="$(mktemp -d "${TMPDIR:-/tmp}/mosaic-expected-red-test.XXXXXX")" trap 'rm -rf "$TMP"' EXIT cat > "$TMP/match.log" <<'LOG' [fixture] resolved lane=next package=@mosaicstack/mosaic@next version=0.0.50-next.999 [fixture] installer_exit=1 done_claims=0 [P0] PASS: supported context [P1] PASS: preflight complete [P2] PASS: pinned artifact [P3] PASS: absolute_path=/home/test/.npm-global/bin/mosaic version=0.0.50-next.999 equals resolved lane version [P4] FAIL: NOT-MEASURED / UNDECLARED: declaration absent [P5] FAIL: identity absent [P6] FAIL: activation unavailable [P7] PASS: no services requested [P8] FAIL: shell path absent [P9] FAIL: aggregate refusal LOG bash "$ROOT/tools/verify-greenfield-expected-red.sh" next-git-present "$TMP/match.log" 1 >/dev/null printf '[test] PASS: matching detector findings make the CI verifier green\n' sed 's/^\[P4\] FAIL:/[P4] PASS:/' "$TMP/match.log" > "$TMP/drift.log" if bash "$ROOT/tools/verify-greenfield-expected-red.sh" next-git-present "$TMP/drift.log" 1 >/dev/null 2>&1; then echo '[test] FAIL: changed P4 verdict did not invalidate the pinned manifest' >&2 exit 1 fi printf '[test] PASS: changed phase verdict requires a deliberate manifest update\n' if bash "$ROOT/tools/verify-greenfield-expected-red.sh" next-git-present "$TMP/match.log" 0 >/dev/null 2>&1; then echo '[test] FAIL: unexpected fixture exit did not invalidate the pinned manifest' >&2 exit 1 fi printf '[test] PASS: unexpected fixture exit remains blocking\n'