#!/usr/bin/env bash # The track gate (tracks.json -> verify): runs the workspace test suite and the job event # store's tests (jobs/events/*.test.mjs, bench/job-events-lane-test.sh), then scores every # committed generated function against its own corpus (bench/generated-scores.sh), on the # build lane. # # bench/verify.sh # # Run from a worktree root, no arguments. Both steps are heavy and the scoring needs the # browser oracle, so the gate runs only on a lane: started anywhere else it re-runs itself # through bench/on-lane.sh --lane-only, and with no lane configured or none answering it # exits 3 and runs nothing here. Which lane, and how the choice is made, is # bench/on-lane.sh's business (it shares the lane resolution with bench/remote-lane.sh -- # see their headers for the file shapes). bench/lane-apply.sh exports NEV_ON_LANE, which is # how this script knows it is already on one; bench/on-lane.sh makes the same check. A lane that is reachable but whose run fails # is a failed gate: no local retry. Being lane-only already, this script needs nothing for # NEV_LANE_STRICT (docs/infrastructure.md -> "Build lane"); only a NEV_ON_LANE set by # hand on this machine would run it here. set -euo pipefail BENCH_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" WORKTREE="$(cd "$BENCH_DIR/.." && pwd)" if [ -z "${NEV_ON_LANE:-${GENERA_ON_LANE:-}}" ]; then exec "$BENCH_DIR/on-lane.sh" --lane-only "$WORKTREE" bash bench/verify.sh fi cd "$WORKTREE" # --locked: a Cargo.lock that no longer matches the manifests fails the gate here rather # than a job's `tools` step later, which builds with --locked. cargo test --workspace --locked # The job event store's tests (docs/job-events.md): node:test files, then the lane script's # scenarios, which reach no lane and start one store on a free loopback port. The shell # expands the file names, since `node --test