Skip to content

Commit b5d38e7

Browse files
pks-tgitster
authored andcommitted
t: allow overriding build dir
Our "test-lib.sh" assumes that our build directory is the parent directory of "t/". While true when using our Makefile, it's not when using build systems that support out-of-tree builds. In commit ee9e66e (cmake: avoid editing t/test-lib.sh, 2022-10-18), we have introduce support for overriding the GIT_BUILD_DIR by creating the file "$GIT_BUILD_DIR/GIT-BUILD-DIR" with its contents pointing to the location of the build directory. The intent was to stop modifying "t/test-lib.sh" with the CMake build systems while allowing out-of-tree builds. But "$GIT_BUILD_DIR" is somewhat misleadingly named, as it in fact points to the _source_ directory. So while that commit solved part of the problem for out-of-tree builds, CMake still has to write files into the source tree. Solve the second part of the problem, namely not having to write any data into the source directory at all, by also supporting an environment variable that allows us to point to a different build directory. This allows us to perform properly self-contained out-of-tree builds. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent b76e914 commit b5d38e7

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

t/test-lib.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ else
3535
# needing to exist.
3636
TEST_DIRECTORY=$(cd "$TEST_DIRECTORY" && pwd) || exit 1
3737
fi
38-
GIT_BUILD_DIR="${TEST_DIRECTORY%/t}"
38+
GIT_BUILD_DIR="${GIT_BUILD_DIR:-${TEST_DIRECTORY%/t}}"
3939
if test "$TEST_DIRECTORY" = "$GIT_BUILD_DIR"
4040
then
4141
echo "PANIC: Running in a $TEST_DIRECTORY that doesn't end in '/t'?" >&2
@@ -513,6 +513,7 @@ unset VISUAL EMAIL LANGUAGE $("$PERL_PATH" -e '
513513
PERF_
514514
CURL_VERBOSE
515515
TRACE_CURL
516+
BUILD_DIR
516517
));
517518
my @vars = grep(/^GIT_/ && !/^GIT_($ok)/o, @env);
518519
print join("\n", @vars);

0 commit comments

Comments
 (0)