[PATCH] test: remove --root option and fix TMP_DIRECTORY cleanup

Jani Nikula jani at nikula.org
Sat Oct 21 05:02:44 PDT 2017


On Sat, 21 Oct 2017, Jani Nikula <jani at nikula.org> wrote:
> 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.)

To clarify, plain 'make test' no longer has its CWD in the test
subdirectory either, leading to the same problem as out-of-tree runs
here.

The problem noticed by David could also be reproduced by running
'test/T310-emacs.sh; test/T310-emacs.sh' but not 'cd test;
./T310-emacs.sh; ./T310-emacs.sh'.

BR,
Jani.

>
> 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.
> ---
>  test/README             | 9 ---------
>  test/test-lib-common.sh | 8 ++------
>  test/test-lib.sh        | 3 ---
>  3 files changed, 2 insertions(+), 18 deletions(-)
>
> diff --git a/test/README b/test/README
> index 8e06f44241a6..b378c3ff3c5f 100644
> --- a/test/README
> +++ b/test/README
> @@ -80,15 +80,6 @@ The following command-line options are available when running tests:
>  	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
>  
> diff --git a/test/test-lib-common.sh b/test/test-lib-common.sh
> index 5e53348a9438..4300eb65418f 100644
> --- a/test/test-lib-common.sh
> +++ b/test/test-lib-common.sh
> @@ -307,13 +307,9 @@ export PATH MANPATH
>  
>  # 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
> -rm -fr "$test" || {
> +rm -rf "$TMP_DIRECTORY" || {
>  	GIT_EXIT_OK=t
>  	echo >&6 "FATAL: Cannot prepare test area"
>  	exit 1
> diff --git a/test/test-lib.sh b/test/test-lib.sh
> index 4619c327dd02..7926d2787710 100644
> --- a/test/test-lib.sh
> +++ b/test/test-lib.sh
> @@ -160,9 +160,6 @@ do
>  		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
> -- 
> 2.11.0


More information about the notmuch mailing list