Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

test-bats.sh 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env bash
  2. # This file needs to be run from the git root directory!
  3. # Exit script on the first error
  4. set -o errexit -o nounset
  5. current_hw=$(find . -type d -name 'hw*' | sort | tail -n1)
  6. while IFS= read -r -d '' taskdir; do
  7. echo ""
  8. echo "=== Suche bats File in $taskdir"
  9. for batsfile in $taskdir/tests/*.bats; do
  10. if [ -e "$batsfile" ]; then
  11. echo "=== bats File gefunden"
  12. echo ""
  13. echo "=== Führe Lösung von Aufgabe in $taskdir aus"
  14. manifest="$taskdir/Cargo.toml"
  15. if [ -e "$manifest" ]; then
  16. echo "=== Cargo-Manifest gefunden in '$manifest' -> Cargo-Modus"
  17. cargo run --manifest-path "$manifest" || true
  18. elif [ "$(find "$taskdir" -maxdepth 1 -type f -name '*.rs' | wc -l)" -ne 0 ]; then
  19. echo "=== Sourcedatei(en) gefunden -> rustc-Modus"
  20. for srcfile in $taskdir/*.rs; do
  21. echo "=== Kompiliere '$srcfile'..."
  22. rustc "$srcfile"
  23. done
  24. else
  25. echo ""
  26. echo "!!! Falsch konfigurierter Aufgabenordner oder ungelöste Aufgabe"
  27. echo "!!! Bitte .rs-Dateien in '$taskdir' ablegen"
  28. echo "!!! Oder ein Cargo-Projekt mit 'cargo init' darin erzeugen"
  29. echo "!!! Alternativ den Ordner löschen"
  30. exit 1
  31. fi
  32. echo "=== bats File gefunden, teste output"
  33. bats "$batsfile"
  34. else
  35. echo "=== keine output Tests via bats ausgeführt"
  36. fi
  37. done
  38. done < <(find "$current_hw" -mindepth 1 -maxdepth 1 -type d -name 'task*' -print0)