The primary motivation here is to fix TMP_DIRECTORY cleanup prior to
running each test when the current working directory is not the test
subdirectory. Tests with failures would leave their TMP_DIRECTORY
directory behind for debugging, and repeated out-of-tree test runs
would have old temp directories. (This lead to e.g. T310-emacs.sh
hanging because emacs would prompt for overwriting files.)
We remove the likely anyway defunct --root test option while at it,
just to be on the safe side when doing 'rm -rf' on the TMP_DIRECTORY.
As the names depend on the tests' file names, it is safe to
run the tests with this option in parallel.
As the names depend on the tests' file names, it is safe to
run the tests with this option in parallel.
---root=<dir>::
- This runs the testsuites specified under a separate directory.
- However, caution is advised, as not all tests are maintained
- with this relocation in mind, so some tests may behave
- differently.
-
- Pointing this argument at a tmpfs filesystem can improve the
- speed of the test suite for some users.
-
Certain tests require precomputed databases to complete. You can fetch these
databases with
Certain tests require precomputed databases to complete. You can fetch these
databases with
# Test repository
test="tmp.$(basename "$0" .sh)"
# Test repository
test="tmp.$(basename "$0" .sh)"
-test -n "$root" && test="$root/$test"
-case "$test" in
-/*) TMP_DIRECTORY="$test" ;;
- *) TMP_DIRECTORY="$TEST_DIRECTORY/$test" ;;
-esac
+TMP_DIRECTORY="$TEST_DIRECTORY/$test"
test ! -z "$debug" || remove_tmp=$TMP_DIRECTORY
test ! -z "$debug" || remove_tmp=$TMP_DIRECTORY
+rm -rf "$TMP_DIRECTORY" || {
GIT_EXIT_OK=t
echo >&6 "FATAL: Cannot prepare test area"
exit 1
GIT_EXIT_OK=t
echo >&6 "FATAL: Cannot prepare test area"
exit 1
valgrind=t; verbose=t; shift ;;
--tee)
shift ;; # was handled already
valgrind=t; verbose=t; shift ;;
--tee)
shift ;; # was handled already
- --root=*)
- root=$(expr "z$1" : 'z[^=]*=\(.*\)')
- shift ;;
*)
echo "error: unknown test option '$1'" >&2; exit 1 ;;
esac
*)
echo "error: unknown test option '$1'" >&2; exit 1 ;;
esac