test-lib: correct and assert TEST_DIRECTORY overriding
commit9dbf20e7f62456400d0011ed8a238ae1f9872665
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Sun, 27 Feb 2022 10:25:11 +0000 (27 11:25 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 28 Feb 2022 21:35:56 +0000 (28 13:35 -0800)
tree2ae9c2d3cc56dc7d72ca9af03ff552d875704c1e
parent66c1a568703fd1e14b544da6a1dd9f34e4cc9cd1
test-lib: correct and assert TEST_DIRECTORY overriding

Correct a misleading comment added by me in 62f539043c7 (test-lib:
Allow overriding of TEST_DIRECTORY, 2010-08-19), and add an assertion
that TEST_DIRECTORY cannot point to any directory except the "t"
directory in the top-level of git.git.

This assertion is in effect not new, since we'd already die if that
wasn't the case[1], but it and the updated commentary help to make
that clearer.

The existing comments were also on the wrong arms of the
"if". I.e. the "allow tests to override this" was on the "test -z"
arm. That came about due to a combination of 62f539043c7 and
85176d72513 (test-lib.sh: convert $TEST_DIRECTORY to an absolute path,
2013-11-17).

Those earlier comments could be read as allowing the "$TEST_DIRECTORY"
to be some path outside of t/. As explained in the updated comment
that's impossible, rather it was meant for *tests* that ran outside of
t/, i.e. the "t0000-basic.sh" tests that use "lib-subtest.sh".

Those tests have a different working directory, but they set the
"TEST_DIRECTORY" to the same path for bootstrapping. The comments now
reflect that, and further comment on why we have a hard dependency on
this.

1. https://lore.kernel.org/git/220222.86o82z8als.gmgdl@evledraar.gmail.com/

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/test-lib.sh