run.sh 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. TEST_DIR="$(cd "$(dirname "$0")" && pwd)"
  3. ROOT_DIR="$(cd "$TEST_DIR/.." && pwd)"
  4. cd "$ROOT_DIR"
  5. export PYTHONPATH="$ROOT_DIR${PYTHONPATH:+:$PYTHONPATH}"
  6. mkdir -p "$TEST_DIR/results"
  7. cat <<'BANNER'
  8. ===========================================================================
  9. 888 888 8888888888 .d88888b. 888b 888 888
  10. 888 888 888 d88P Y888b 8888b 888 888
  11. 888 888 888 888 888 88888b 888 888
  12. 888 888 8888888 888 888 888Y88b 888 .d88b. 888888
  13. 888 888 888 888 888 888 Y88b888 d8P Y8b 888
  14. 888 888 888 888 888 888 Y88888 88888888 888
  15. Y88b. .d88P 888 Y88b. .d88P 888 Y8888 Y8b. Y88b.
  16. 'Y88888P' 888 'Y88888P' 888 Y888 'Y8888 'Y8888
  17. {(D)enial(OFF)ensive(S)ervice[ToolKit]}-{by_(io=psy+/03c8.net)}
  18. w3ap0n1z1ng l33t/h4ckt1v1sts/cr4ck3rs/sK1ds...
  19. 4 pWn1ng c0rrupt$/g0vs/evilC0rps...
  20. 8======D $1nce: 2013 <-
  21. ===========================================================================
  22. [Info] [AI] Launching UFONet test suite...
  23. ===========================================================================
  24. BANNER
  25. PASS=0; FAIL=0; SKIP=0
  26. FAILED=()
  27. START=$(date +%s)
  28. for d in "$TEST_DIR"/*/; do
  29. name="$(basename "$d")"
  30. case "$name" in
  31. results|_lib|fixtures) continue ;;
  32. esac
  33. script=""
  34. if [ -f "$d/test.py" ]; then script="python3 $d/test.py"; fi
  35. if [ -f "$d/test.sh" ]; then script="bash $d/test.sh"; fi
  36. if [ -z "$script" ]; then
  37. SKIP=$((SKIP+1))
  38. echo "[SKIP] $name (no test.py / test.sh)"
  39. continue
  40. fi
  41. log="$TEST_DIR/results/${name}.log"
  42. t0=$(date +%s)
  43. if $script > "$log" 2>&1; then
  44. t=$(( $(date +%s) - t0 ))
  45. echo "[PASS] $name (${t}s)"
  46. PASS=$((PASS+1))
  47. else
  48. rc=$?
  49. t=$(( $(date +%s) - t0 ))
  50. echo "[FAIL] $name (${t}s, rc=$rc) -> $log"
  51. FAIL=$((FAIL+1))
  52. FAILED+=("$name")
  53. fi
  54. done
  55. END=$(date +%s)
  56. TOTAL=$((END-START))
  57. echo "======================================================="
  58. echo " PASS=$PASS FAIL=$FAIL SKIP=$SKIP TOTAL_TIME=${TOTAL}s"
  59. if [ ${#FAILED[@]} -gt 0 ]; then
  60. echo " FAILED: ${FAILED[*]}"
  61. fi
  62. echo "======================================================="
  63. exit $FAIL