From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: "SZEDER Gábor" <szeder.dev@gmail.com>,
"Stefan Beller" <sbeller@google.com>,
"Johannes Sixt" <j6t@kdbg.org>,
"David Turner" <dturner@twosigma.com>,
git@vger.kernel.org
Subject: Re: [PATCH] test-lib: abort when can't remove trash directory
Date: Sun, 23 Apr 2017 17:14:54 -0700 [thread overview]
Message-ID: <xmqqk26a4q69.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170421201527.wdtxhox3p4g35gex@sigill.intra.peff.net> (Jeff King's message of "Fri, 21 Apr 2017 16:15:28 -0400")
Jeff King <peff@peff.net> writes:
>> - test -d "$remove_trash" &&
>> + test -d "$remove_trash" ||
>> + error "Tests passed but trash directory already removed before test cleanup; aborting"
>
> I think I found out why this "test -d" was here in the first place:
>
> $ ./t0000-basic.sh --debug
> [...]
> # passed all 77 test(s)
> 1..77
> error: Tests passed but trash directory already removed before test cleanup; aborting
>
> When --debug is in use, we do not set $remove_trash. The original was
> relying on 'test -d ""' to return false.
>
> I think this whole removal block should probably be moved inside a
> conditional like:
>
> if test -n "$remove_trash"
> then
> ...
> fi
Thanks for digging. Yes, checking for non-empty string is
definitely better.
> I also wonder if we should come up with a better name than
> $remove_trash. A script which unknowingly overwrites that variable would
> be disastrous.
>
> Perhaps we should drop it entirely and just do:
>
> if test -z "$debug"
> then
> test -d "$TRASH_DIRECTORY" ||
> error "Tests passed but..."
> [and so forth...]
> fi
OK. I am wondering why we do not do
rm -fr "$TRASH_DIRECTORY"
and do this instead:
cd "$(dirname "$remove_trash")" &&
rm -rf "$(basename "$remove_trash")"
in the original. It feels somewhat unnatural.
... goes and looks ...
Of course, back when abc5d372 ("Enable parallel tests", 2008-08-08)
was writen, we didn't even have TRASH_DIRECTORY variable; because
the way the test-lib.sh ensured that the trash directory is prestine
was to first do a 'rm -fr "$test"' before the first test_create_repo,
the above makes sort of matches how that initial removal is done.
So perhaps we can simplify and make it more robust by doing this?
t/test-lib.sh | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/t/test-lib.sh b/t/test-lib.sh
index cde7fc7fcf..f1ab8f33d9 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -760,9 +760,14 @@ test_done () {
say "1..$test_count$skip_all"
fi
- test -d "$remove_trash" &&
- cd "$(dirname "$remove_trash")" &&
- rm -rf "$(basename "$remove_trash")"
+ if test -z "$debug"
+ then
+ test -d "$TRASH_DIRECTORY" ||
+ error "Tests passed but trash directory already removed before test cleanup; aborting"
+
+ rm -fr "$TRASH_DIRECTORY" ||
+ error "Tests passed but test cleanup failed; aborting"
+ fi
test_at_end_hook_
next prev parent reply other threads:[~2017-04-24 0:15 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-10 12:59 [PATCH] t6500: don't run detached auto gc at the end of the test script SZEDER Gábor
2017-04-10 13:58 ` Jeff King
2017-04-10 16:31 ` SZEDER Gábor
2017-04-10 16:35 ` Jeff King
2017-04-10 16:56 ` SZEDER Gábor
2017-04-10 17:01 ` Jeff King
2017-04-11 21:32 ` Johannes Sixt
2017-04-12 0:27 ` SZEDER Gábor
2017-04-12 0:50 ` Jeff King
2017-04-12 22:03 ` SZEDER Gábor
2017-04-12 22:07 ` [PATCHv2] " SZEDER Gábor
2017-04-13 10:31 ` [PATCHv2.1] t6500: wait for " SZEDER Gábor
2017-04-13 16:06 ` David Turner
2017-04-13 16:44 ` Jeff King
2017-04-13 18:08 ` SZEDER Gábor
2017-04-13 18:12 ` Jeff King
2017-04-13 16:37 ` [PATCH] t6500: don't run " Jeff King
2017-04-13 17:55 ` Stefan Beller
2017-04-13 17:57 ` Jeff King
2017-04-13 19:03 ` SZEDER Gábor
2017-04-13 19:12 ` Jeff King
2017-04-13 19:35 ` SZEDER Gábor
2017-04-14 20:08 ` Jeff King
2017-04-20 16:42 ` SZEDER Gábor
2017-04-20 16:45 ` Jeff King
2017-04-20 16:52 ` [PATCH] test-lib: abort when can't remove trash directory SZEDER Gábor
2017-04-20 19:06 ` Jeff King
2017-04-21 0:48 ` Junio C Hamano
2017-04-21 20:06 ` SZEDER Gábor
2017-04-21 20:15 ` Jeff King
2017-04-24 0:14 ` Junio C Hamano [this message]
2017-04-24 1:43 ` Jeff King
2017-04-24 2:58 ` Junio C Hamano
2017-04-24 4:02 ` Junio C Hamano
2017-04-24 7:52 ` Jeff King
2017-04-24 9:39 ` Torsten Bögershausen
2017-04-24 9:46 ` Jeff King
2017-04-25 2:31 ` Junio C Hamano
2017-04-25 6:05 ` Junio C Hamano
2017-04-25 6:07 ` Jeff King
2017-04-25 6:31 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqk26a4q69.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=dturner@twosigma.com \
--cc=git@vger.kernel.org \
--cc=j6t@kdbg.org \
--cc=peff@peff.net \
--cc=sbeller@google.com \
--cc=szeder.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).