diff --git a/bin/run_test.bat b/bin/run_test.bat new file mode 100644 index 0000000..6b0006d --- /dev/null +++ b/bin/run_test.bat @@ -0,0 +1,106 @@ +@echo off +REM ============================================================================ +REM run_test.bat - Führt Tests für eine einzelne DXF-Datei aus +REM +REM Usage: +REM run_test.bat - Führt getexdraw Test aus +REM run_test.bat --clean - Führt Test aus und räumt auf +REM run_test.bat --ioconverter - Führt ioconverter Test aus +REM run_test.bat --translation - Führt translation Test aus +REM +REM Der Dateiname kann mit oder ohne .dxf Erweiterung angegeben werden. +REM Die Datei wird standardmäßig im testdata Ordner gesucht. +REM ============================================================================ + +if [%1]==[] goto usage + +REM Umgebungsvariablen laden +call "%~dp0setenv.bat" + +if exist "%~dp0_setenv.bat" ( + echo Lade lokale Umgebungseinstellungen aus _setenv.bat... + call "%~dp0_setenv.bat" +) + +REM Dateinamen extrahieren (ohne Pfad und ohne .dxf Erweiterung) +set "FILENAME=%~n1" + +REM Prüfe ob Datei im testdata Ordner existiert +if not exist "%PROJECT_TEST%\%FILENAME%.dxf" ( + echo Fehler: Datei %FILENAME%.dxf nicht gefunden in %PROJECT_TEST% + echo. + goto usage +) + +REM Sammle zusätzliche Parameter für run_tests.py +set "TEST_PARAMS=--file %FILENAME%" + +REM Prüfe auf zusätzliche Flags +:parse_args +if "%2"=="" goto run_test +if /i "%2"=="--clean" ( + set "TEST_PARAMS=%TEST_PARAMS% --clean" + shift + goto parse_args +) +if /i "%2"=="--ioconverter" ( + set "TEST_PARAMS=%TEST_PARAMS% --ioconverter" + shift + goto parse_args +) +if /i "%2"=="--translation" ( + set "TEST_PARAMS=%TEST_PARAMS% --translation" + shift + goto parse_args +) +REM Unbekannte Parameter ignorieren oder durchreichen +shift +goto parse_args + +:run_test +echo. +echo ============================================================================ +echo Führe Test aus für: %FILENAME%.dxf +echo Test-Parameter: %TEST_PARAMS% +echo ============================================================================ +echo. + +REM Wechsle ins Projektverzeichnis und führe run_tests.py aus +cd /d "%PROJECT%" +python "%PROJECT_LIB%\run_tests.py" %TEST_PARAMS% + +set TEST_RESULT=%ERRORLEVEL% + +echo. +echo ============================================================================ +if %TEST_RESULT% EQU 0 ( + echo Test erfolgreich abgeschlossen für: %FILENAME%.dxf +) else ( + echo Test fehlgeschlagen für: %FILENAME%.dxf +) +echo ============================================================================ +echo. + +exit /B %TEST_RESULT% + +:usage +echo. +echo Usage: %~nx0 ^ [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 %~nx0 easy +echo %~nx0 easy.dxf +echo %~nx0 easy --clean +echo %~nx0 easy --ioconverter +echo %~nx0 Erdungsbsp --translation +echo. +exit /B 1 diff --git a/bin/run_test.sh b/bin/run_test.sh new file mode 100644 index 0000000..504da81 --- /dev/null +++ b/bin/run_test.sh @@ -0,0 +1,111 @@ +#!/bin/bash +# ============================================================================ +# run_test.sh - Führt Tests für eine einzelne DXF-Datei aus +# +# Usage: +# run_test.sh - Führt getexdraw Test aus +# run_test.sh --clean - Führt Test aus und räumt auf +# run_test.sh --ioconverter - Führt ioconverter Test aus +# run_test.sh --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") [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 "" + +# Wechsle ins Projektverzeichnis und führe run_tests.py aus +cd "$PROJECT" +python "$PROJECT_LIB/run_tests.py" $TEST_PARAMS + +TEST_RESULT=$? + +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