#!/bin/bash # usage: run.sh : compiles layout_diff.rs with rustc and runs it under Relax; diffs set -u H=$(cd "$(dirname "$0")" && pwd) T=$(mktemp -d) rustc --edition 2021 -O "$H/layout_diff.rs" -o "$T/real" 2>"$T/rustc.err" || { cat "$T/rustc.err"; exit 2; } "$T/real" > "$T/real.out" mkdir -p "$T/u" cat > "$T/u/units.json" < "$T/relax.out" 2>"$T/relax.err" if diff "$T/real.out" "$T/relax.out" > "$T/diff"; then echo "layout_diff: $(wc -l < "$T/real.out" | tr -d ' ') lines equal" else grep '^[<>]' "$T/diff" | head -80 grep -E "error|panic" "$T/relax.err" | head -5 exit 1 fi