Fixrunde 1 zu Task 6b. - setup_pi.sh raeumt die Ablage vor dem scp ab und bricht ab, wenn display.py dort fehlt. Ein Reststand aus einem abgebrochenen Lauf liess "scp -r" ins vorhandene Ziel hineinkopieren; die Installationsschleife ueberspringt Verzeichnisse und fand nichts - der Lauf meldete Erfolg, aktivierte den Anzeigedienst und hinterliess ein leeres display/: 203/EXEC im 5-Sekunden-Takt bei schwarzem Panel. - Der Paketschritt steht jetzt hinter der Installation und warnt nur. Eine Migrationsstation steht typischerweise nicht am Netz; unter set -e davor hiess ein gescheitertes apt: gar keine Station statt einer Station ohne Panel. "apt-get update" kommt vor dem install, der Anzeigedienst startet nach dem Paketschritt. - setup_pi.sh raeumt display/ auf dem Pi wie deploy.sh auf (im Repo geloeschte Dateien verschwinden), der Trap haengt auch an INT/TERM/HUP, und mktemp bekommt eine Vorlage: ohne sie beachtet BSD-mktemp TMPDIR nicht, und die Temp-Datei landete je nach Plattform woanders. - test_host.sh ruft test_deploy.sh auf - 95 Zusagen liefen nur bei Handaufruf, darunter die Deploy-Haelfte der Anzeige-Auslieferung. Der Coverage-Test deckt jetzt auch die Shell-Suiten ab und zaehlt dabei nur nicht auskommentierte Zeilen. - Neue Szenarien fuer alle vier Punkte, darunter die Zusage, dass beim gescheiterten Schreiben eines Profils keine Datei mit dem WLAN-Passwort liegenbleibt.
35 lines
1.8 KiB
Bash
Executable File
35 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Builds and runs all host unit tests.
|
|
set -euo pipefail
|
|
ROOT=$(cd "$(dirname "$0")/.." && pwd)
|
|
cmake -S "$ROOT/test" -B "$ROOT/build/host" -G Ninja >/dev/null
|
|
cmake --build "$ROOT/build/host"
|
|
ctest --test-dir "$ROOT/build/host" --output-on-failure "$@"
|
|
|
|
if python3 -c 'import pytest' 2>/dev/null; then
|
|
# tools/mkimage als GANZES Verzeichnis, nicht nur tools/mkimage/tests: die 19 Tests in
|
|
# tools/mkimage/test_nl_mkimage.py liegen direkt daneben und liefen sonst in keiner
|
|
# Suite mit - darunter test_stays_python38_compatible, die Wache fuer die bindende
|
|
# 3.8-Randbedingung des Docker-Build-Containers.
|
|
#
|
|
# Diese Wache braucht das Paket "vermin" und schlaegt ohne es HART fehl (kein Skip):
|
|
# eine Wache, die sich beim Fehlen ihres Werkzeugs stillschweigend abschaltet, haette
|
|
# den Build-Bruch von damals genauso durchgelassen wie gar kein Test. Fehlt vermin,
|
|
# nachinstallieren:
|
|
# pip install vermin (oder: pip3 install --user vermin)
|
|
python3 -m pytest "$ROOT/tools/mkimage" "$ROOT/tools/station/tests" -q
|
|
else
|
|
echo "Hinweis: pytest fehlt - Python-Tests uebersprungen" >&2
|
|
echo " Installation: pip install pytest vermin (vermin braucht" >&2
|
|
echo " tools/mkimage/test_nl_mkimage.py::test_stays_python38_compatible)" >&2
|
|
fi
|
|
|
|
# Alle Shell-Suiten unter tools/station/tests/ - test_deploy.sh fehlte hier und lief
|
|
# damit nur bei Handaufruf (Task 6b F1, I3): dieselbe Klasse von Luecke wie die aus
|
|
# keiner Suite gefallene test_nl_mkimage.py, nur eine Ebene hoeher. Mit ihr liefen 95
|
|
# Zusagen nirgends mit, darunter die komplette Deploy-Haelfte der Anzeige-Auslieferung.
|
|
# tools/mkimage/tests/test_suite_coverage.py haelt fest, dass hier keine Suite fehlt.
|
|
"$ROOT/tools/station/tests/test_cli.sh"
|
|
"$ROOT/tools/station/tests/test_deploy.sh"
|
|
"$ROOT/tools/station/tests/test_setup_pi.sh"
|