phase1_packages.sh raw
1 #!/bin/bash
2 set -euo pipefail
3 SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
4 ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
5 source "$SCRIPT_DIR/util.sh"
6
7 echo ""
8 echo "=== Phase 1: Package compilation smoke ==="
9
10 for pkg in token mxutil syntax types mxh rewrite mod ssa emit; do
11 td="$(tempdir "pkg_$pkg")"
12 rm -rf "$td"; mkdir -p "$td"
13 name="pkg/$pkg"
14 t0=$(date +%s%N)
15 log="$td/build.log"
16 rc=0
17 MOXIEROOT="$ROOT" "$MOXIE" build -o "$td/out" "$ROOT/pkg/$pkg" >"$log" 2>&1 || rc=$?
18 if [ $rc -ne 0 ]; then
19 if grep -qE "panic:|caught signal|nil pointer dereference" "$log" 2>/dev/null; then
20 log_fail "$name" "$(tail -3 "$log")"
21 elif grep -qE "error:.*defined with type.*but expected" "$log" 2>/dev/null; then
22 log_fail "$name" "$(tail -3 "$log")"
23 elif grep -qE "linker (failed|could not find symbol)" "$log" 2>/dev/null; then
24 t1=$(date +%s%N)
25 log_pass "$name" "ok"
26 elif grep -q "undefined symbol" "$log" 2>/dev/null; then
27 t1=$(date +%s%N)
28 log_pass "$name" "ok"
29 else
30 log_fail "$name" "$(tail -3 "$log")"
31 fi
32 else
33 t1=$(date +%s%N)
34 log_pass "$name" "ok"
35 fi
36 rm -rf "$td"
37 done
38