#!/bin/sh # G2 regression and acceptance in one go: rules (M1-M3), network (regression only), G1 map, # G2 acceptance, the real app (M1/M2), stress, balance and the archived Saumwacht mode. # Every log lands in docs/luneraria/logs/g2/test-*.log. Tools that write into earlier # milestone folders (M1/M2 acceptance, M4 loopback, milestone screenshots) are copied to the # G2 folder and the milestone files are restored, so M1-M4 evidence stays as committed. # Run: sh tools/luneraria/run_g2_tests.sh (GODOT=... PYTHON=... to override the tools) set -u cd "$(dirname "$0")/../.." || exit 1 LOG=docs/luneraria/logs/g2 mkdir -p "$LOG" GODOT=${GODOT:-godot} PYTHON=${PYTHON:-python3} FAILED=0 run() { name=$1 shift started=$(date +%s) "$@" > "$LOG/test-$name.log" 2>&1 code=$? echo "exit $code after $(( $(date +%s) - started )) s" >> "$LOG/test-$name.log" [ $code -eq 0 ] || FAILED=1 printf '%-14s exit %s %s\n' "$name" "$code" "$(grep -E 'PASS|FAIL|checks|passed|failed' "$LOG/test-$name.log" | tail -1)" } run core "$GODOT" --headless --path . res://tests/luneraria/test_lune_core.tscn run m2 "$GODOT" --headless --path . res://tests/luneraria/test_lune_m2.tscn run net "$GODOT" --headless --path . res://tests/luneraria/test_lune_net.tscn run net-rounds "$PYTHON" tools/luneraria/net_rounds.py --godot "$GODOT" cp docs/luneraria/logs/m4/net-rounds.json "$LOG/test-net-rounds.json" 2>/dev/null run verify-g1 "$GODOT" --path . --resolution 1920x1080 res://tools/luneraria/verify_g1.tscn cp docs/luneraria/logs/g1/verify-g1.json "$LOG/test-verify-g1.json" 2>/dev/null run verify-g2 "$GODOT" --path . --resolution 1920x1080 res://tools/luneraria/verify_g2.tscn run verify-m1 "$GODOT" --path . --resolution 1920x1080 res://tools/luneraria/verify_m1.tscn cp docs/luneraria/logs/m1-acceptance.json "$LOG/test-verify-m1.json" 2>/dev/null run verify-m2 "$GODOT" --path . --resolution 1920x1080 res://tools/luneraria/verify_m2.tscn cp docs/luneraria/logs/m2-acceptance.json "$LOG/test-verify-m2.json" 2>/dev/null run stress "$GODOT" --headless --path . res://tools/luneraria/stress_run.tscn cp docs/luneraria/logs/m3/stress.json "$LOG/test-stress.json" 2>/dev/null run balance "$GODOT" --headless --path . res://tools/luneraria/balance_run.tscn -- --compositions=20 --limit=60 --out=res://docs/luneraria/logs/g2/balance.json run legacy-runner "$GODOT" --headless --path . res://tests/test_runner.tscn run legacy-smoke "$GODOT" --headless --path . -- --smoke-test # Milestone evidence stays as committed (the G2 copies are above). git checkout -- docs/luneraria/logs/m1-acceptance.json docs/luneraria/logs/m2-acceptance.json docs/luneraria/logs/m4 docs/luneraria/logs/m3/stress.json \ docs/luneraria/logs/g1/verify-g1.json docs/luneraria/screenshots/*.png 2>/dev/null [ $FAILED -eq 0 ] && echo "G2_TESTS_OK" || echo "G2_TESTS_WITH_FAILURES" exit $FAILED