#!/bin/sh set -eu if [ "$#" -ne 1 ]; then echo "usage: $0 SCORE_TILE8_GATE" >&2 exit 2 fi runner=$1 fixture=$(mktemp -d /private/tmp/gem-score-tile8-overlap.XXXXXX) server_pid= cleanup() { if [ -n "$server_pid" ] && kill -0 "$server_pid" 2>/dev/null; then kill "$server_pid" wait "$server_pid" 2>/dev/null || true fi rm -rf "$fixture" } trap cleanup EXIT INT TERM HUP mkdir -p "$fixture/build" printf 'fixture model\n' > "$fixture/model.gguf" printf '%s\n' '#!/bin/sh' 'while :; do sleep 1; done' > "$fixture/build/gem" chmod +x "$fixture/build/gem" "$fixture/build/gem" serve & server_pid=$! attempt=0 while ! pgrep -f "$fixture/build/gem serve" >/dev/null 2>&1; do attempt=$((attempt + 1)) if [ "$attempt" -ge 50 ]; then echo "fixture production process did not become visible" >&2 exit 1 fi sleep 0.02 done set +e GEM_MODEL_SHA256=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef \ GEM_SCORE_TILE8_BUILD="$fixture/missing-build" \ "$runner" "$fixture/model.gguf" "$fixture/output" \ > "$fixture/stdout" 2> "$fixture/stderr" exit_code=$? set -e if [ "$exit_code" -ne 1 ] || ! grep -q 'refusing to overlap a production server Metal workload' "$fixture/stderr" || [ -e "$fixture/output" ]; then echo "score-tile gate did not fail closed around a production workload" >&2 exit 1 fi