gem/tests/online_merge_boundary_analysis.sh
2026-08-30 18:24:55 -06:00

38 lines
1.1 KiB
Bash
Executable file

#!/bin/sh
set -eu
[ "$#" -eq 6 ] || {
echo "usage: $0 ANALYZER AT8191 AT8192 AT8193 AT65536 AT131072" >&2
exit 2
}
analyzer=$1
at8191=$2
at8192=$3
at8193=$4
at65536=$5
at131072=$6
fixture=$(mktemp -d /private/tmp/gem-online-merge-boundary.XXXXXX)
trap 'rm -rf "$fixture"' EXIT INT TERM HUP
"$analyzer" "$at8191" "$at8192" "$at8193" "$at65536" "$at131072" \
"$fixture/audit.json"
jq -e '
.workload == "d512-online-softmax-cpu-gate-audit" and
.fixed_controls.tokens == [8191,8192,8193,65536,131072] and
.screening.passed == true and .screening.promotion_eligible == false and
(.inputs.at_8192.sha256 | test("^[0-9a-f]{64}$"))
' "$fixture/audit.json" >/dev/null
jq '.tokens = 8194' "$at8193" > "$fixture/bad-boundary.json"
if "$analyzer" "$at8191" "$at8192" "$fixture/bad-boundary.json" \
"$at65536" "$at131072" >/dev/null 2>&1; then
echo "online-merge boundary analyzer accepted a changed boundary" >&2
exit 1
fi
if "$analyzer" "$at8191" "$at8192" "$at8193" "$at65536" "$at131072" \
"$fixture/audit.json" \
>/dev/null 2>&1; then
echo "online-merge boundary analyzer overwrote an existing audit" >&2
exit 1
fi