Salty.uproject (UE 5.8) from the Third Person template with class redirects, the SaltyCore and Salty modules, the three build targets, USaltyAssetManager calling InitGlobalData, Config/Tags with the 23 root namespaces, Scripts/run-tests.sh, build.sh and Authoring/create_gym.py, L_Gym, Git LFS attributes and the placeholder test. Template variants kept as reference (D-41). The four Fab packs stay out of the repository for now (~10 GB). The editor serves the engine MCP plugin on 127.0.0.1:8000 through DefaultEditorPerProjectUserSettings.ini. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
30 lines
1.5 KiB
Bash
30 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
# Runs the automation tests headless. Usage: Scripts/run-tests.sh [Filter]
|
|
# Scripts/run-tests.sh -> Salty.* (everything)
|
|
# Scripts/run-tests.sh Core -> Salty.Core.*
|
|
# UE_ROOT points at the engine install (default D:/UE_5.8). Exit code is non-zero when any test fails.
|
|
set -u
|
|
UE_ROOT="${UE_ROOT:-D:/UE_5.8}"
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
PROJECT="$ROOT/Salty.uproject"
|
|
FILTER="Salty${1:+.$1}"
|
|
REPORT="$ROOT/Saved/Automation/Reports"
|
|
LOG="$ROOT/Saved/Logs/RunTests.log"
|
|
mkdir -p "$REPORT" "$(dirname "$LOG")"
|
|
|
|
"$UE_ROOT/Engine/Binaries/Win64/UnrealEditor-Cmd.exe" "$(cygpath -w "$PROJECT" 2>/dev/null || echo "$PROJECT")" \
|
|
-ExecCmds="Automation RunTests $FILTER; Quit" \
|
|
-ReportExportPath="$(cygpath -w "$REPORT" 2>/dev/null || echo "$REPORT")" \
|
|
-unattended -nopause -NullRHI -nosplash -log -abslog="$(cygpath -w "$LOG" 2>/dev/null || echo "$LOG")" >/dev/null 2>&1
|
|
ENGINE_EXIT=$?
|
|
|
|
# The engine's exit code is not a reliable verdict; the "Test Completed" lines are. Startup prints two
|
|
# "LogAutomationTest: Error: Condition failed" lines before any test runs; they are the engine's, not ours.
|
|
grep -E "Test Completed\. Result=" "$LOG" | sed -E 's/^.*Test Completed\. //'
|
|
PASSED=$(grep -c "Test Completed. Result={Success}" "$LOG")
|
|
FAILED=$(grep -c "Test Completed. Result={Fail" "$LOG")
|
|
echo "passed=$PASSED failed=$FAILED filter=$FILTER"
|
|
if [ "$FAILED" -gt 0 ]; then echo "RESULT: FAILED"; exit 1; fi
|
|
if [ "$PASSED" -eq 0 ]; then echo "RESULT: NO TESTS RAN (engine exit $ENGINE_EXIT). See $LOG"; exit 2; fi
|
|
echo "RESULT: PASSED"
|