| 1234567891011121314151617181920212223242526272829303132333435 |
- #!/bin/sh
- # m2SDL test runner - builds each tests/*.mod with gm2 and runs it.
- # Usage: ./run_tests.sh (SDL_VIDEODRIVER=dummy also works headless)
- set -e
- CDIR=$(dirname "$0")
- ROOT=$(cd "$CDIR/.." && pwd)
- BIN="$ROOT/build/tests"
- OBJ="$ROOT/build/objs"
- GM2="${GM2:-gm2}"
- mkdir -p "$BIN" "$OBJ"
- # pure-Modula-2 helpers must be compiled with -c first (no main),
- # then linked as .o files (passing the .mod directly would add
- # extra mains and fail to link).
- # shellcheck disable=SC2086
- $GM2 -I"$ROOT/src" -I"$ROOT/lib" $GM2FLAGS -c "$ROOT/src/SDLRect.mod" -o "$OBJ/SDLRect.o"
- # shellcheck disable=SC2086
- $GM2 -I"$ROOT/src" -I"$ROOT/lib" $GM2FLAGS -c "$ROOT/lib/SDLUtils.mod" -o "$OBJ/SDLUtils.o"
- # shellcheck disable=SC2086
- $GM2 -I"$ROOT/src" -I"$ROOT/lib" $GM2FLAGS -c "$ROOT/src/SDLKey.mod" -o "$OBJ/SDLKey.o"
- pass=0; fail=0
- for t in test_init test_version test_rect test_window test_key; do
- echo "== $t =="
- # shellcheck disable=SC2086
- $GM2 -I"$ROOT/src" -I"$ROOT/lib" $GM2FLAGS "$ROOT/tests/$t.mod" \
- "$OBJ/SDLRect.o" "$OBJ/SDLUtils.o" "$OBJ/SDLKey.o" \
- -o "$BIN/$t" -lSDL2
- if [ "$t" = "test_window" ] && [ -z "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ]; then
- SDL_VIDEODRIVER=dummy "$BIN/$t"
- else
- "$BIN/$t"
- fi
- pass=$((pass+1))
- done
- echo "OK: $pass passed, $fail failed"
|