Files
eepp/projects/scripts/run_gdb_tests.sh
Martín Lucas Golini 4c6f5b9a48 Fix VFS publication portability, long filenames and Linux test runner
- Add safe POSIX no-overwrite publication with explicit cleanup errors.
- Use short temporary basenames for atomic writes and copies.
- Document wrapped-zero InfoZIP rejection and add a 65,536-entry fixture.
- Add publication race, cleanup failure and long filename regressions.
- Replace suitable VFS string concatenation with String::format/formatTo.
- Pass SIGUSR1 through GDB so the interrupted-join test can finish.
2026-10-18 01:19:49 -03:00

32 lines
904 B
Bash
Executable File

#!/bin/bash
set -euo pipefail
CANONPATH=$(readlink -f "$0")
DIRPATH="$(dirname "$CANONPATH")"
cd ../../bin/unit_tests
echo "=== Running eepp unit tests under GDB (xvfb) ==="
# Process.joinRetriesInterruptedWaits sends SIGUSR1 to interrupt waitpid(). Deliver it to
# the installed test handler without stopping the batch debugger before the suite finishes.
sh "$DIRPATH/xvfb-run-eepp" \
gdb --batch --quiet --return-child-result \
-ex "set confirm off" \
-ex "set print thread-events off" \
-ex "handle SIGUSR1 nostop noprint pass" \
-ex "run" \
-ex "bt full" \
-ex "thread apply all bt full" \
-ex "info registers" \
-ex "quit" \
--args ./eepp-unit_tests "$@"
GDB_STATUS=$?
if [ $GDB_STATUS -ne 0 ] && [ $GDB_STATUS -ne 139 ]; then
echo "❌ GDB exited with unexpected code: $GDB_STATUS"
exit 1
fi
echo "✅ Unit tests completed (GDB status: $GDB_STATUS)"