26 lines
1.8 KiB
Bash
Executable file
26 lines
1.8 KiB
Bash
Executable file
#!/bin/sh
|
|
# x64_gate.sh: the landing gate's x64 leg (JITSAFE fix 5), run from the tree root on an x86_64 node
|
|
# (relax-campaign/x64gate.sh ships the exact tree there through pool.sh). The Mac leg of land.sh is
|
|
# arm64; x64-only regressions (O1 switch, X64RACE, AVX-512 checksums) reached work through it.
|
|
# 1. cargo build --release -p makepad-run: 0 warnings
|
|
# 2. cargo test --release -p relax-backend -p relax-codegen (every x64 test)
|
|
# 3. diff_fast at o1 / base / o3 / counted, hard RIR verification on (DIFF_VERIFY default)
|
|
# Prints one verdict line: `X64-OK <diff line>` or `X64-FAIL: <what>`; exit 0 / 1.
|
|
# Env: X64_GATE_KNOWN="test::name ...": x64 test failures that do not fail the gate (none today).
|
|
T=${CARGO_TARGET_DIR:-target}
|
|
case $T in /*) ;; *) T=$PWD/$T ;; esac
|
|
log=$(mktemp -d "${TMPDIR:-/tmp}/x64gate.XXXXXX") || exit 2
|
|
fail=
|
|
CARGO_INCREMENTAL=0 nice -n 10 cargo build --release -p makepad-run --bin makepad -j8 > "$log/build" 2>&1 || fail="$fail build"
|
|
if grep -qE '^(warning|error)' "$log/build"; then fail="$fail warnings:$(grep -cE '^(warning|error)' "$log/build")"; fi
|
|
CARGO_INCREMENTAL=0 nice -n 10 cargo test --release -p relax-backend -p relax-codegen --no-fail-fast -j8 > "$log/test" 2>&1
|
|
bad=$(sed -n 's/^test \(.*\) \.\.\. FAILED$/\1/p' "$log/test" | sort -u)
|
|
for k in ${X64_GATE_KNOWN:-}; do bad=$(printf '%s\n' "$bad" | grep -vx "$k"); done
|
|
bad=$(printf '%s' "$bad" | tr '\n' ' ')
|
|
[ -n "$bad" ] && fail="$fail tests:[$bad]"
|
|
grep -qE '^error(\[|:)' "$log/test" && fail="$fail test-build"
|
|
df=$(TARGET=$T/release DIFF_TIERS="o1 base o3 counted" DIFF_CACHE=${X64_GATE_DIFF_CACHE:-$HOME/rc/diff_fast_cache} tools/run/fixture/diff_fast.sh 2>&1 | tail -1)
|
|
echo "$df" | grep -qE '^diff: ([0-9]+)/\1 equal' || fail="$fail diff_fast:[$df]"
|
|
rm -r "$log"
|
|
if [ -n "$fail" ]; then echo "X64-FAIL:$fail"; exit 1; fi
|
|
echo "X64-OK $df"
|