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