git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Allow Overriding GIT_BUILD_DIR

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 26, 2012, 22:19 UTC
Message-ID
<7vpqd1dyq7.fsf@alter.siamese.dyndns.org>
In-Reply-To
<87vcmu5psm.fsf@smith.obbligato.org>
"David A. Greene" <greened@obbligato.org> writes:
Show 5 quoted lines
> Let tests override GIT_BUILD_DIR so git will work if tests are not at
> the same directory level as standard git tests.  Prior to this change,
> GIT_BUILD_DIR is hardwired to be exactly one directory above where the
> test lives.  A test within contrib/, for example, can now use
> test-lib.sh and set an appropriate value for GIT_BUILD_DIR.

Ok, this is getting closer. We use GIT_BUILD_DIR to find out crucial bits of the build environment in order to run tests, like the binaries being tested that are in $GIT_BUILD_DIR/bin-wrappers, but we set GIT_BUILD_DIR always to one level above where the test script being run is (because they are typically t/t1234-name.sh). By making them able to name GIT_BUILD_DIR directly to a place that is different from a level above "$TEST_DIRECTORY", a test script can live anywhere.

There are two more things that worries me a bit.

One is what TEST_DIRECTORY should mean in the new world order. We use it to find where the test-lib.sh and other lib-*.sh helper definitions are, also we use it to find large-ish test vectors like t3900/ and t4013/. If an external test script t1234-git-subtree.sh wants to use a separate file to keep its own helper definitions, how should it name it? It cannot be relative to TEST_DIRECTORY that is typically "t/". It cannot be relative to "../" as TRASH_DIRECTORY where the script runs, as the --root option may move it elsewhere on the filesystem (and is the reason TEST_DIRECTORY variable exists in the first place).

And how well does an external test script work with the --root option that moves the TEST_DIRECTORY?

Show 17 quoted lines
> Signed-off-by: David A. Greene <greened@obbligato.org>
> ---
>  t/test-lib.sh |   10 +++++++++-
>  1 files changed, 9 insertions(+), 1 deletions(-)
>
>
> ------------------
>
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index a65dfc7..4585138 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -55,6 +55,7 @@ unset $(perl -e '
>  		.*_TEST
>  		PROVE
>  		VALGRIND
> +                BUILD_DIR
A funny    indentation found here.
>  	));
Show 11 quoted lines
> @@ -901,7 +902,14 @@ then
>  	# itself.
>  	TEST_DIRECTORY=$(pwd)
>  fi
> -GIT_BUILD_DIR="$TEST_DIRECTORY"/..
> +
> +if test -z "$GIT_BUILD_DIR"
> +then
> +	# We allow tests to override this, in case they want to run tests
> +	# outside of t/, e.g. for running tests on the test library
> +	# itself.

# For in-tree test scripts, this is one level above the TEST_DIRECTORY # (t/), but a test script that lives outside t/ can set this variable to # point at the right place so that it can find t/ directory that house # test helpers like lib-pager*.sh and test vectors like t4013/.

Show 7 quoted lines
> +        GIT_BUILD_DIR="$TEST_DIRECTORY"/..
> +fi
>  
>  if test -n "$valgrind"
>  then
>
> --------------------
Previous: David A. GreeneNext: David A. Greene
Message 2 of 4 in “Allow Overriding GIT_BUILD_DIR”
  1. Allow Overriding GIT_BUILD_DIRDavid A. Greene, Feb 5, 2012
  2. Junio C HamanoFeb 26, 2012
  3. David A. GreeneMar 2, 2012
  4. Thomas RastMar 2, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.