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

Re: t7900 failures when $HOME is symlinked

From
Philippe Blain <levraiphilippeblain@gmail.com>
Date
Dec 3, 2021, 22:40 UTC
Message-ID
<837581db-b3d7-2a73-9a61-7c40f77f264b@gmail.com>
In-Reply-To
<xmqq1r2tty13.fsf@gitster.g>
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.
Previous: Junio C Hamano
Message 5 of 5 in “t7900 failures when $HOME is symlinked”
  1. Philippe BlainDec 3, 2021
  2. Junio C HamanoDec 3, 2021
  3. Jeff KingDec 3, 2021
  4. Junio C HamanoDec 5, 2021
  5. Philippe BlainDec 3, 2021

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.