test output: respect $TEST_OUTPUT_DIRECTORY

Most test results go in $TEST_OUTPUT_DIRECTORY, but the output files for tests run with --tee or --valgrind just use bare "test-results". Changes these so that they do respect $TEST_OUTPUT_DIRECTORY. As a result of this, the valgrind/analyze.sh script may no longer inspect the correct files so it is also updated to respect $TEST_OUTPUT_DIRECTORY by adding it to GIT-BUILD-OPTIONS. This may be a regression for people who have TEST_OUTPUT_DIRECTORY in their config.mak but want to override it in the environment, but this change merely brings it into line with GIT_TEST_OPTS which already cannot be overridden if it is specified in config.mak. Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>

John Keeping committed Apr 29, 2013 at 19:16 UTC 2d14e13c56a407eea6084ff2d5713a8d23d337f5
3 files changed +11 -4
Makefile
+3
@@ -2153,6 +2153,9 @@ GIT-BUILD-OPTIONS: FORCE
2153 @echo NO_PERL=\''$(subst ','\'',$(subst ','\'',$(NO_PERL)))'\' >>$@
2154 @echo NO_PYTHON=\''$(subst ','\'',$(subst ','\'',$(NO_PYTHON)))'\' >>$@
2155 @echo NO_UNIX_SOCKETS=\''$(subst ','\'',$(subst ','\'',$(NO_UNIX_SOCKETS)))'\' >>$@
2156 +ifdef TEST_OUTPUT_DIRECTORY
2157 + @echo TEST_OUTPUT_DIRECTORY=\''$(subst ','\'',$(subst ','\'',$(TEST_OUTPUT_DIRECTORY)))'\' >>$@
2158 +endif
2159 ifdef GIT_TEST_OPTS
2160 @echo GIT_TEST_OPTS=\''$(subst ','\'',$(subst ','\'',$(GIT_TEST_OPTS)))'\' >>$@
2161 endif
t/test-lib.sh
+2 -2
@@ -54,8 +54,8 @@ done,*)
54 # do not redirect again
55 ;;
56 *' --tee '*|*' --va'*)
57 - mkdir -p test-results
58 - BASE=test-results/$(basename "$0" .sh)
57 + mkdir -p "$TEST_OUTPUT_DIRECTORY/test-results"
58 + BASE="$TEST_OUTPUT_DIRECTORY/test-results/$(basename "$0" .sh)"
59 (GIT_TEST_TEE_STARTED=done ${SHELL_PATH} "$0" "$@" 2>&1;
60 echo $? > $BASE.exit) | tee $BASE.out
61 test "$(cat $BASE.exit)" = 0
t/valgrind/analyze.sh
+6 -2
@@ -1,6 +1,10 @@
1 #!/bin/sh
2
3 -out_prefix=$(dirname "$0")/../test-results/valgrind.out
3 +# Get TEST_OUTPUT_DIRECTORY from GIT-BUILD-OPTIONS if it's there...
4 +. "$(dirname "$0")/../../GIT-BUILD-OPTIONS"
5 +# ... otherwise set it to the default value.
6 +: ${TEST_OUTPUT_DIRECTORY=$(dirname "$0")/..}
7 +
8 output=
9 count=0
10 total_count=0
@@ -115,7 +119,7 @@ handle_one () {
119 finish_output
120 }
121
118 -for test_script in "$(dirname "$0")"/../test-results/*.out
122 +for test_script in "$TEST_OUTPUT_DIRECTORY"/test-results/*.out
123 do
124 handle_one $test_script
125 done