From: Philippe Blain Date: Fri, 03 Dec 2021 22:40:37 GMT Subject: Re: t7900 failures when $HOME is symlinked Message-ID: <837581db-b3d7-2a73-9a61-7c40f77f264b@gmail.com> In-Reply-To: Hi Junio, Le 2021-12-03 à 12:10, Junio C Hamano a écrit : > Philippe Blain 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. > 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.