61 lines
1.9 KiB
Bash
Executable File
61 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Führt die Testskripte aus. Sie werden als Autoload eingehängt und danach
|
|
# wird das Projekt wieder in den Ausgangszustand gebracht.
|
|
set -u
|
|
GODOT="${GODOT:-$HOME/bin/godot}"
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
|
|
restore() { git checkout project.godot 2>/dev/null || cp /tmp/_pg.bak project.godot; rm -f scripts/_test.gd /tmp/_pg.bak; }
|
|
cp project.godot /tmp/_pg.bak
|
|
trap restore EXIT
|
|
|
|
install_test() {
|
|
cp "$1" scripts/_test.gd
|
|
cp /tmp/_pg.bak project.godot
|
|
printf '\n[autoload]\n\nTest="*res://scripts/_test.gd"\n' >> project.godot
|
|
}
|
|
|
|
echo "=== Einzelspieler-Tests ==="
|
|
install_test tests/solo_test.gd
|
|
"$GODOT" --headless --path . --fixed-fps 60 2>&1 | grep -E "OK|FAIL|=="
|
|
SOLO=${PIPESTATUS[0]}
|
|
|
|
echo
|
|
echo "=== Eingabe-Tests (braucht ein Fenster) ==="
|
|
install_test tests/input_test.gd
|
|
"$GODOT" --path . --resolution 1280x720 2>&1 | grep -E "OK|FAIL|=="
|
|
INPUT=${PIPESTATUS[0]}
|
|
|
|
echo
|
|
echo "=== Weichen-Tests ==="
|
|
install_test tests/switch_test.gd
|
|
"$GODOT" --path . --resolution 1280x720 2>&1 | grep -E "OK|FAIL|=="
|
|
SWITCH=${PIPESTATUS[0]}
|
|
|
|
echo
|
|
echo "=== Klang-Tests ==="
|
|
install_test tests/audio_test.gd
|
|
"$GODOT" --path . --resolution 1280x720 2>&1 | grep -E "OK|FAIL|=="
|
|
AUDIO=${PIPESTATUS[0]}
|
|
|
|
echo
|
|
echo "=== Richtungs-Tests ==="
|
|
install_test tests/direction_test.gd
|
|
"$GODOT" --path . --resolution 1280x720 2>&1 | grep -E "OK|FAIL|=="
|
|
DIR=${PIPESTATUS[0]}
|
|
|
|
echo
|
|
echo "=== Netzwerk-Tests ==="
|
|
install_test tests/net_test.gd
|
|
"$GODOT" --headless --path . -- --host > /tmp/_host.log 2>&1 &
|
|
HOST=$!
|
|
sleep 6
|
|
"$GODOT" --headless --path . -- --client 2>&1 | grep -E "OK|FAIL|=="
|
|
NET=${PIPESTATUS[0]}
|
|
wait $HOST 2>/dev/null
|
|
|
|
echo
|
|
[ "$SOLO" -eq 0 ] && [ "$SWITCH" -eq 0 ] && [ "$INPUT" -eq 0 ] && [ "$DIR" -eq 0 ] && [ "$AUDIO" -eq 0 ] && [ "$NET" -eq 0 ] && echo "Alle Tests bestanden." || echo "Es sind Tests fehlgeschlagen."
|
|
exit $(( SOLO || SWITCH || INPUT || DIR || AUDIO || NET ))
|