Re: t7900 failures when $HOME is symlinked

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Dec 03, 2021 at 09:10:16AM -0800, Junio C Hamano wrote:

>  * TRASH_DIRECTORY is originally set to "trash directory." with a
>    suffix to make it unique across test scripts, but it immediately
>    gets turned into an absolute path by doing this:
> 
>         test -n "$root" && TRASH_DIRECTORY="$root/$TRASH_DIRECTORY"
>         case "$TRASH_DIRECTORY" in
>         /*) ;; # absolute path is good
>          *) TRASH_DIRECTORY="$TEST_OUTPUT_DIRECTORY/$TRASH_DIRECTORY" ;;
>         esac
> 
>    I notice that a root that is not absolute is silently lost during
>    this process.
> 
>    TEST_OUTPUT_DIRECTORY is set to TEST_DIRECTORY that comes from
>    $(pwd) we saw earlier, or TEST_OUTPUT_DIRECTORY_OVERRIDE, which
>    is also set to $(pwd) elsewhere, so the case statement does make
>    it absolute in the end.  It just loses --root=* without complaint
>    which is what I found iffy.

I don't think it's lost. It becomes part of $TRASH_DIRECTORY in the
first line, so the final line which prepends $TEST_OUTPUT_DIRECTORY
makes it relative to that. E.g.:

  $ cd t
  $ ./t0000-basic.sh --root=foo --debug
  [...]
  $ ls foo
  trash directory.t0000-basic/

I don't recall planning that in particular (there is not much point in
using it unless you are pointing outside the repo, though I guess you
could use ../../../foo or similar). But I think it has always worked
that way, since f423ef5f2b (tests: allow user to specify trash directory
location, 2009-08-09). It was perhaps a little easier to see back then
when the intermediate "$test" variable was not the final one.

-Peff



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux