Re: t7900 failures when $HOME is symlinked
Hi Junio,
Le 2021-12-03 à 12:10, Junio C Hamano a écrit :
Show 20 quoted lines
> Philippe Blain <levraiphilippeblain@gmail.com> writes:
>
>> Hi Stolee,
>>
>> I noticed two failures, t7900.32 and t7900.36, on a system where
>> $HOME is symlinked, i.e.
>>
>> $ cd $HOME && pwd
>> /home/me
>> $ pwd -P
>> /some/other/path/me
>>
>> These two tests use 'pfx = $(cd $HOME && pwd)', so $pfx is '/home/me',
>> but the actual path that gets written by Git is canonicalized, i.e.
>> '/some/other/path/me'. I think a simple fix would be to use 'pwd -P'
>> instead, which fixes it for me.
>
> Curious. Your personal HOME shouldn't have much to do with the
> tests, but obviously it can indirectly affect the outcome because it
> affects where you place your repository.
Indeed, the source code was cloned somewhere in my HOME.
Show 29 quoted lines
> HOME during tests is set in t/test-lib.sh, based on where
> TRASH_DIRECTORY is, and the latter is often derived from
> TEST_OUTPUT_DIRECTORY (unless --root is given), which comes from
> TEST_DIRECTORY and it is set like so:
>
> # Test the binaries we have just built. The tests are kept in
> # t/ subdirectory and are run in 'trash directory' subdirectory.
> if test -z "$TEST_DIRECTORY"
> 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.
> TEST_DIRECTORY=$(pwd)
> else
> # ensure that TEST_DIRECTORY is an absolute path so that it
> # is valid even if the current working directory is changed
> TEST_DIRECTORY=$(cd "$TEST_DIRECTORY" && pwd) || exit 1
> fi
> if test -z "$TEST_OUTPUT_DIRECTORY"
> then
> # Similarly, override this to store the test-results subdir
> # elsewhere
> TEST_OUTPUT_DIRECTORY=$TEST_DIRECTORY
> fi
> GIT_BUILD_DIR="$TEST_DIRECTORY"/..
>
> If you want to do $(pwd -P) somewhere, isn't it that one you want to
> change to avoid similar problems in any code, including the ones
> that are not yet written, that uses $(pwd)?
Indeed, that works and it looks like a more robust fix.
Thanks,
Philippe.