32 lines
2.6 KiB
Bash
Executable file
32 lines
2.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# The class v5 fast-time gate on igneum-build-1 (docs/design/class-v5-stored-state.md section 10): runs one case of
|
|
# infra/fast-time/class-v5-signal.mjs on the box from this worktree's mirror there (the fork's Linux binaries in
|
|
# vendor/igneum-node-class-v5/target/release and igneum-pow's in igneum-pow/target/release, both built by
|
|
# tools/build-remote.sh), under its own data dir, and copies the summary and log back under
|
|
# docs/design/class-v5-harness/<case>.{json,log}. A functional run (counts, ids, locks), not a measurement: it takes
|
|
# no build slot and no measure hold (the Mac rule's `run` kind).
|
|
#
|
|
# tools/class-v5/harness-remote.sh <case-name> -- <class-v5-signal.mjs arguments>
|
|
# tools/class-v5/harness-remote.sh failed-case -- --signal 5,5,4 --expect flip
|
|
# BASE=29830 tools/class-v5/harness-remote.sh flip-stale -- --signal 5,5,5 --expect flip --stale 2 (another port base per
|
|
# case, so two cases never share ports; the harness kills the previous run's pids of its own data dir first)
|
|
set -euo pipefail
|
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT="$(cd "$HERE/../.." && pwd)"
|
|
CASE="${1:?case name}"; shift
|
|
[ "${1:-}" = "--" ] && shift
|
|
WT="$(basename "$ROOT")"
|
|
HOST=build@188.40.146.49
|
|
KEY="$HOME/.ssh/igneum_ed25519"
|
|
REMOTE_ROOT="/srv/builds/$WT"
|
|
REMOTE_LOG="/srv/builds/_log/v5-class/harness"
|
|
OUT="$ROOT/docs/design/class-v5-harness"
|
|
mkdir -p "$OUT"
|
|
ARGS="$*"
|
|
BASE="${BASE:-29760}"
|
|
echo "harness-remote: case $CASE on $HOST: node $REMOTE_ROOT/infra/fast-time/class-v5-signal.mjs $ARGS"
|
|
# the harness file travels by rsync (the mirror carries HEAD; an uncommitted change rides along, re-stamped: the copied-sources rule)
|
|
rsync -a -e "ssh -i $KEY" "$ROOT/infra/fast-time/class-v5-signal.mjs" "$ROOT/infra/fast-time/override-60x.json" "$HOST:$REMOTE_ROOT/infra/fast-time/"
|
|
ssh -i "$KEY" "$HOST" "touch $REMOTE_ROOT/infra/fast-time/class-v5-signal.mjs $REMOTE_ROOT/infra/fast-time/override-60x.json; mkdir -p $REMOTE_LOG; cd $REMOTE_ROOT && IGNEUM_V5_BASE=$BASE IGNEUM_V5_TMP=/tmp/igneum-fast-time-v5s-$CASE IGNEUM_V5_BIN=$REMOTE_ROOT/vendor/igneum-node-class-v5/target/release IGNEUM_POW=$REMOTE_ROOT/igneum-pow/target/release/igneum-pow node infra/fast-time/class-v5-signal.mjs $ARGS > $REMOTE_LOG/$CASE.log 2>&1; rc=\$?; cp /tmp/igneum-fast-time-v5s-$CASE/summary.json $REMOTE_LOG/$CASE.json 2>/dev/null || true; echo \"harness-remote: rc \$rc\"; exit \$rc" || true
|
|
rsync -a -e "ssh -i $KEY" "$HOST:$REMOTE_LOG/$CASE.log" "$HOST:$REMOTE_LOG/$CASE.json" "$OUT/" 2>/dev/null || true
|
|
grep -E "SUMMARY|FAILED CHECK|PROGRAM ID|CLASS SWITCH" "$OUT/$CASE.log" || tail -20 "$OUT/$CASE.log"
|