Re: [PATCH] t6500: don't run detached auto gc at the end of the test script
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Apr 20, 2017, 16:42 UTC
- Message-ID
- <CAM0VKjm1m4v9vTpwFEejBuD3NuGm+kAdEV-_rzCXCz2G4m5NGw@mail.gmail.com>
- In-Reply-To
- <20170414200829.ahqignx3pkhbuepg@sigill.intra.peff.net>
On Fri, Apr 14, 2017 at 10:08 PM, Jeff King <peff@peff.net> wrote:
Show 15 quoted lines
> On Thu, Apr 13, 2017 at 09:35:08PM +0200, SZEDER Gábor wrote:
>
>> >> diff --git a/t/test-lib.sh b/t/test-lib.sh
>> >> index 13b569682..d7fa15a69 100644
>> >> --- a/t/test-lib.sh
>> >> +++ b/t/test-lib.sh
>> >> @@ -763,7 +763,7 @@ test_done () {
>> >>
>> >> test -d "$remove_trash" &&
>>
>> I'm not sure under what circumstances the trash dir could be missing at
>> this point...
>
> Yeah, I don't really see the point of that line. Our whole goal is to
> remove it anyway.It turns out it's necessary, see below.
Show 11 quoted lines
>> >> cd "$(dirname "$remove_trash")" &&
>> >> - rm -rf "$(basename "$remove_trash")"
>> >> + rm -rf "$(basename "$remove_trash")" || exit 1
>>
>> ... but when it is already removed, then I think we should not exit
>> with error here.
>> Nothing that a pair of {} wouldn't handle.
>
> I suppose so. It might be worth being picky just on the principle that
> if it _is_ gone that's unexpected and we'd prefer somebody notice and
> figure out why.OK, agreed.
However, we do need the above 'test -d' for this to work, because 'rm -rf' doesn't consider non-existing paths as errors, so we wouldn't notice that the trash directory is already gone.
>> > Replacing it the "exit 1" with a "die" that has a message is probably a >> > good idea, though.
test-lib.sh has a special 'die', different from git-sh-setup.sh's 'die'. I'll use 'error "uh-oh"' instead.
Show 7 quoted lines
>> If we can't 'cd' or 'rm -rf', then they will tell us why they failed >> anyway, most likely including the name of the trash directory. >> Do we really need more error messages than that? > > I just meant something like "tests passed but test cleanup failed; > aborting" so that the user has a better idea what is going on. But since > it shouldn't happen, maybe that doesn't matter.
And we do need an error message, because 'test -d' would remain silent when the directory were already missing.