Re: [PATCH v3 3/4] test-lib: make $GIT_BUILD_DIR an absolute path
From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2022-02-21 19:00:43
On Mon, Feb 21 2022, Taylor Blau wrote:
On Mon, Feb 21, 2022 at 04:58:34PM +0100, Ævar Arnfjörð Bjarmason wrote:quoted
diff --git a/t/test-lib.sh b/t/test-lib.sh index 77c3fabd041..ff13321bfd3 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh@@ -41,7 +41,7 @@ then # elsewhere TEST_OUTPUT_DIRECTORY=$TEST_DIRECTORY fi -GIT_BUILD_DIR="$TEST_DIRECTORY"/.. +GIT_BUILD_DIR="${TEST_DIRECTORY%/t}"Sorry to notice this so late, but this hunk caught my eye. What happens if `TEST_DIRECTORY` is provided by the user (and doesn't end in "/t")?
I think that the preceding 2/4 should cover your concern here, i.e. I think that's not possible.
Before this change, we would have set GIT_BUILD_DIR to the parent of whatever TEST_DIRECTORY is, whether or not it ended in "/t". We'll still do the same thing with this patch if TEST_DIRECTORY ends in "/t". But if it doesn't, then we'll set GIT_BUILD_DIR to be the same as TEST_DIRECTORY, which is a behavior change.
Indeed, but I believe (again see 2/4) that can't happen.
If you just want GIT_BUILD_DIR to be absolute in order to for LSan to
understand how to correctly strip it out of filenames, could we replace
this with:
GIT_BUILD_DIR="$(cd "$TEST_DIRECTORY/.." && pwd)"
or (an admittedly less clear)
GIT_BUILD_DIR="$(dirname "$TEST_DIRECTORY")"Yes. I almost changed it to the former in this re-roll, but as noted in [ref] thought it was better to have it clear that this really wasn't a generic mechanism, we really do need/want the actual "t" directory here.