125 lines
3.7 KiB
Bash
125 lines
3.7 KiB
Bash
#!/bin/bash
|
|
# ============================================================================
|
|
# run_test.sh - Führt Tests für eine einzelne DXF-Datei aus
|
|
#
|
|
# Usage:
|
|
# run_test.sh <filename> - Führt getexdraw Test aus
|
|
# run_test.sh <filename> --clean - Führt Test aus und räumt auf
|
|
# run_test.sh <filename> --ioconverter - Führt ioconverter Test aus
|
|
# run_test.sh <filename> --translation - Führt translation Test aus
|
|
#
|
|
# Der Dateiname kann mit oder ohne .dxf Erweiterung angegeben werden.
|
|
# Die Datei wird standardmäßig im testdata Ordner gesucht.
|
|
# ============================================================================
|
|
|
|
# Funktion für Usage-Ausgabe
|
|
usage() {
|
|
echo ""
|
|
echo "Usage: $(basename "$0") <filename> [OPTIONS]"
|
|
echo ""
|
|
echo "Argumente:"
|
|
echo " filename Name der DXF-Datei (mit oder ohne .dxf Erweiterung)"
|
|
echo " Die Datei wird im testdata Ordner gesucht."
|
|
echo ""
|
|
echo "Optionen:"
|
|
echo " --clean Räumt das work-Verzeichnis nach dem Test auf"
|
|
echo " --ioconverter Führt ioconverter Test aus (statt getexdraw)"
|
|
echo " --translation Führt translation Test aus (statt getexdraw)"
|
|
echo ""
|
|
echo "Beispiele:"
|
|
echo " $(basename "$0") easy"
|
|
echo " $(basename "$0") easy.dxf"
|
|
echo " $(basename "$0") easy --clean"
|
|
echo " $(basename "$0") easy --ioconverter"
|
|
echo " $(basename "$0") Erdungsbsp --translation"
|
|
echo ""
|
|
exit 1
|
|
}
|
|
|
|
# Prüfe ob Parameter übergeben wurde
|
|
if [ $# -eq 0 ]; then
|
|
usage
|
|
fi
|
|
|
|
# Bestimme das Skript-Verzeichnis
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# Umgebungsvariablen laden
|
|
source "$SCRIPT_DIR/setenv.sh"
|
|
|
|
# Lade lokale Umgebungseinstellungen falls vorhanden
|
|
if [ -f "$SCRIPT_DIR/_setenv.sh" ]; then
|
|
echo "Lade lokale Umgebungseinstellungen aus _setenv.sh..."
|
|
source "$SCRIPT_DIR/_setenv.sh"
|
|
fi
|
|
|
|
# Dateinamen extrahieren (ohne Pfad und ohne .dxf Erweiterung)
|
|
FILENAME=$(basename "$1" .dxf)
|
|
|
|
# Prüfe ob Datei im testdata Ordner existiert
|
|
if [ ! -f "$PROJECT_TEST/$FILENAME.dxf" ]; then
|
|
echo "Fehler: Datei $FILENAME.dxf nicht gefunden in $PROJECT_TEST"
|
|
usage
|
|
fi
|
|
|
|
# Sammle Parameter für run_tests.py
|
|
TEST_PARAMS="--file $FILENAME"
|
|
|
|
# Verarbeite zusätzliche Parameter
|
|
shift
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--clean)
|
|
TEST_PARAMS="$TEST_PARAMS --clean"
|
|
;;
|
|
--ioconverter)
|
|
TEST_PARAMS="$TEST_PARAMS --ioconverter"
|
|
;;
|
|
--translation)
|
|
TEST_PARAMS="$TEST_PARAMS --translation"
|
|
;;
|
|
*)
|
|
# Unbekannte Parameter ignorieren
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
echo ""
|
|
echo "============================================================================"
|
|
echo "Führe Test aus für: $FILENAME.dxf"
|
|
echo "Test-Parameter: $TEST_PARAMS"
|
|
echo "============================================================================"
|
|
echo ""
|
|
|
|
# Python-Umgebung aktivieren
|
|
source "$SCRIPT_DIR/manage_interpreter.sh" activate
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Failed to activate Python environment"
|
|
exit 1
|
|
fi
|
|
|
|
# Wechsle ins Projektverzeichnis und führe run_tests.py aus
|
|
pushd "$PROJECT" > /dev/null
|
|
|
|
"$VIRTUAL_ENV/bin/python" -m lib.run_tests $TEST_PARAMS
|
|
TEST_RESULT=$?
|
|
|
|
popd > /dev/null
|
|
|
|
# Python-Umgebung deaktivieren
|
|
source "$SCRIPT_DIR/manage_interpreter.sh" deactivate
|
|
|
|
echo ""
|
|
echo "============================================================================"
|
|
if [ $TEST_RESULT -eq 0 ]; then
|
|
echo "Test erfolgreich abgeschlossen für: $FILENAME.dxf"
|
|
else
|
|
echo "Test fehlgeschlagen für: $FILENAME.dxf"
|
|
fi
|
|
echo "============================================================================"
|
|
echo ""
|
|
|
|
exit $TEST_RESULT
|