From: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: "Junio C Hamano" <gitster@pobox.com>,
"GIT Mailing-list" <git@vger.kernel.org>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: Re: [RFC/PATCH] t3300-*.sh: Fix a TAP parse error
Date: Tue, 24 Jul 2012 19:34:18 +0100 [thread overview]
Message-ID: <500EEAAA.8030604@ramsay1.demon.co.uk> (raw)
In-Reply-To: <20120721182049.GL19860@burratino>
Jonathan Nieder wrote:
>> Needless to say, I much prefer the patch below. :-D
>
> Thanks for a nice explanation. In general I definitely like getting
> rid of these setup tests when possible. Let's see:
>
> [...]
>> --- a/t/t3300-funny-names.sh
>> +++ b/t/t3300-funny-names.sh
>> @@ -15,28 +15,20 @@ p0='no-funny'
>> p1='tabs ," (dq) and spaces'
>> p2='just space'
>>
>> -test_expect_success 'setup' '
>> - cat >"$p0" <<-\EOF &&
>> - 1. A quick brown fox jumps over the lazy cat, oops dog.
>> - 2. A quick brown fox jumps over the lazy cat, oops dog.
>> - 3. A quick brown fox jumps over the lazy cat, oops dog.
>> - EOF
>> +cat >"$p0" <<\EOF
>> +1. A quick brown fox jumps over the lazy cat, oops dog.
>> +2. A quick brown fox jumps over the lazy cat, oops dog.
>> +3. A quick brown fox jumps over the lazy cat, oops dog.
>> +EOF
>
> The problem is that on platforms not supporting funny filenames, it
> will write a complaint to stderr and because the code is not guarded
> by test_expect_success, that output goes to the terminal. So I think
> this is a wrong approach.
Huh? Which platforms are we talking about?
The only problematic platforms I test on are "NTFS/bash" on cygwin and MinGW.
Since commit 2b843732 ("Suppress some bash redirection error messages",
26-08-2008), I have not noticed any complaints regarding this problem.
What have I missed?
Assuming we are not talking about errors like ENOSPC, EROFS etc., then the
only command which would issue a complaint to stderr would be the line
following the above snippet, thus:
+cat 2>/dev/null >"$p1" "$p0"
(note the stderr redirection). This does not output an error to the terminal
when using bash (I think I also tested with dash). However, this does rely
on the shell performing the redirections in the order, left to right, on the
command line. [I had intended to check with POSIX to see if this order was
mandated or not, but didn't get around to it ...]
Have you found a shell were this does not work?
> Would it make sense to avoid the "# SKIP" comment when a test has
> been run, like this?
>
> diff --git i/t/test-lib.sh w/t/test-lib.sh
> index acda33d1..038f6e9f 100644
> --- i/t/test-lib.sh
> +++ w/t/test-lib.sh
> @@ -354,6 +354,11 @@ test_done () {
> case "$test_failure" in
> 0)
> # Maybe print SKIP message
> + if test -n "$skip_all" && test "$test_count" != 0
> + then
> + say "# SKIP $skill_all"
> + skip_all=
> + fi
> [ -z "$skip_all" ] || skip_all=" # SKIP $skip_all"
>
> if test $test_external_has_tap -eq 0; then
No, I don't think this would be a good direction to go in. This may
not be a good idea either, but if you wanted to add a check here, then
maybe something like this (totally untested):
diff --git a/t/test-lib.sh b/t/test-lib.sh
index acda33d..53a2422 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -354,6 +354,9 @@ test_done () {
case "$test_failure" in
0)
# Maybe print SKIP message
+ if test -n "$skip_all" && test $test_count -gt 0; then
+ error "Can't use skip_all after running some tests"
+ fi
[ -z "$skip_all" ] || skip_all=" # SKIP $skip_all"
if test $test_external_has_tap -eq 0; then
Dunno! :-D
I will be sending a v2 patch soon.
ATB,
Ramsay Jones
next prev parent reply other threads:[~2012-07-24 19:21 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-21 17:46 [RFC/PATCH] t3300-*.sh: Fix a TAP parse error Ramsay Jones
2012-07-21 18:20 ` Jonathan Nieder
2012-07-24 18:34 ` Ramsay Jones [this message]
2012-07-24 19:21 ` Jonathan Nieder
2012-07-25 18:36 ` Ramsay Jones
2012-07-24 19:57 ` Junio C Hamano
2012-07-25 19:07 ` Ramsay Jones
2012-07-25 20:51 ` Jonathan Nieder
2012-07-25 22:08 ` Junio C Hamano
2012-07-28 18:12 ` Ramsay Jones
2012-07-28 18:03 ` Ramsay Jones
2012-08-16 23:40 ` Junio C Hamano
2012-08-19 17:57 ` Ramsay Jones
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=500EEAAA.8030604@ramsay1.demon.co.uk \
--to=ramsay@ramsay1.demon.co.uk \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.