A later patch in this series will need to know the path to the trash directory early in 'test-lib.sh', but $TRASH_DIRECTORY is set much later. Furthermore, the path to the trash directory depends on the '--root=<path>' option, which, too, is parsed too late. Move parsing '--root=...' to the early option parsing loop, and set $TRASH_DIRECTORY where the other test-specific path variables are set. Signed-off-by: SZEDER Gábor <szeder.dev@xxxxxxxxx> --- t/test-lib.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/t/test-lib.sh b/t/test-lib.sh index 09c77cbd1b..ea1cd34013 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -85,6 +85,8 @@ do valgrind=${opt#--*=} ;; --valgrind-only=*) valgrind_only=${opt#--*=} ;; + --root=*) + root=${opt#--*=} ;; *) # Other options will be handled later. esac @@ -93,6 +95,12 @@ done TEST_NAME="$(basename "$0" .sh)" TEST_RESULTS_DIR="$TEST_OUTPUT_DIRECTORY/test-results" TEST_RESULTS_BASE="$TEST_RESULTS_DIR/$TEST_NAME" +TRASH_DIRECTORY="trash directory.$TEST_NAME" +test -n "$root" && TRASH_DIRECTORY="$root/$TRASH_DIRECTORY" +case "$TRASH_DIRECTORY" in +/*) ;; # absolute path is good + *) TRASH_DIRECTORY="$TEST_OUTPUT_DIRECTORY/$TRASH_DIRECTORY" ;; +esac # if --tee was passed, write the output not only to the terminal, but # additionally to the file test-results/$BASENAME.out, too. @@ -318,9 +326,6 @@ do with_dashes=t; shift ;; --no-color) color=; shift ;; - --root=*) - root=${1#--*=} - shift ;; --chain-lint) GIT_TEST_CHAIN_LINT=1 shift ;; @@ -351,7 +356,8 @@ do -V|--verbose-log|\ --va|--val|--valg|--valgr|--valgri|--valgrin|--valgrind|\ --valgrind=*|\ - --valgrind-only=*) + --valgrind-only=*|\ + --root=*) shift ;; # These options were handled already. *) echo "error: unknown test option '$1'" >&2; exit 1 ;; @@ -1040,12 +1046,6 @@ then fi # Test repository -TRASH_DIRECTORY="trash directory.$TEST_NAME" -test -n "$root" && TRASH_DIRECTORY="$root/$TRASH_DIRECTORY" -case "$TRASH_DIRECTORY" in -/*) ;; # absolute path is good - *) TRASH_DIRECTORY="$TEST_OUTPUT_DIRECTORY/$TRASH_DIRECTORY" ;; -esac rm -fr "$TRASH_DIRECTORY" || { GIT_EXIT_OK=t echo >&5 "FATAL: Cannot prepare test area" -- 2.20.0.rc2.156.g5a9fd2ce9c