diff --git a/scripts/run/dev.sh b/scripts/run/dev.sh index 9335a94c..19d7c215 100644 --- a/scripts/run/dev.sh +++ b/scripts/run/dev.sh @@ -88,23 +88,21 @@ cmd_test() { } _run_stability_test() { - # Uses the existing screenshot pipeline to boot the game, navigate to - # world_map, wait 20s, and capture a screenshot. If the game crashes - # before the screenshot is taken, the test fails. - local STABILITY_LOG="$REPO_ROOT/.project/logs/stability_$(date +%Y%m%d_%H%M%S).log" - mkdir -p "$(dirname "$STABILITY_LOG")" - "$REPO_ROOT/tools/screenshot.sh" "stability_test" "world_map" "20" > "$STABILITY_LOG" 2>&1 - local RESULT=$? - if [ $RESULT -ne 0 ]; then - echo -e "${RED}FAIL: Stability test failed (exit code $RESULT)${NC}" - tail -10 "$STABILITY_LOG" | grep -E "SCRIPT ERROR|ERROR:" | head -5 + # Boots the game → world_map, waits 20s, captures screenshot. + # If the game crashes before capture, exit code is non-zero. + local LOG="/tmp/stability_test_$$.log" + cmd_screenshot "stability_test" "world_map" "20" > "$LOG" 2>&1 + if [ $? -ne 0 ]; then + echo -e "${RED}FAIL: Game crashed during stability test${NC}" + grep -E "SCRIPT ERROR|ERROR:" "$LOG" | head -5 return 1 fi - if grep -q "SCREENSHOT_PATH:" "$STABILITY_LOG"; then + if grep -q "Captured:" "$LOG"; then echo -e "${GREEN}PASS: Game stable for 20s, screenshot captured${NC}" return 0 else echo -e "${RED}FAIL: Game ran but no screenshot captured${NC}" + cat "$LOG" | tail -5 return 1 fi }