git@vger.kernel.org mailing list mirror (one of many)
 help / Atom feed
* [PATCH] t6300-for-each-ref: fix "more than one quoting style" tests
@ 2018-02-13  0:36 SZEDER Gábor
  2018-02-13 22:22 ` Jeff King
  0 siblings, 1 reply; 5+ messages in thread
From: SZEDER Gábor @ 2018-02-13  0:36 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, SZEDER Gábor

'git for-each-ref' should error out when invoked with more than one
quoting style options.  The tests checking this have two issues:

  - They run 'git for-each-ref' upstream of a pipe, hiding its exit
    code, thus don't actually checking that 'git for-each-ref' exits
    with error code.

  - They check the error message in a rather roundabout way.

Ensure that 'git for-each-ref' exits with an error code using the
'test_must_fail' helper function, and check its error message by
grepping its saved standard error.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---

Those tests were like this since ancient times, c9ecf4f12a
(for-each-ref: Fix quoting style constants., 2007-12-06).


 t/t6300-for-each-ref.sh | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/t/t6300-for-each-ref.sh b/t/t6300-for-each-ref.sh
index c128dfc579..295d1475bd 100755
--- a/t/t6300-for-each-ref.sh
+++ b/t/t6300-for-each-ref.sh
@@ -373,11 +373,8 @@ test_expect_success 'Quoting style: tcl' '
 
 for i in "--perl --shell" "-s --python" "--python --tcl" "--tcl --perl"; do
 	test_expect_success "more than one quoting style: $i" "
-		git for-each-ref $i 2>&1 | (read line &&
-		case \$line in
-		\"error: more than one quoting style\"*) : happy;;
-		*) false
-		esac)
+		test_must_fail git for-each-ref $i 2>err &&
+		grep '^error: more than one quoting style' err
 	"
 done
 
-- 
2.16.1.181.g4b60b0bfb6


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] t6300-for-each-ref: fix "more than one quoting style" tests
  2018-02-13  0:36 [PATCH] t6300-for-each-ref: fix "more than one quoting style" tests SZEDER Gábor
@ 2018-02-13 22:22 ` Jeff King
  2018-02-15 16:39   ` SZEDER Gábor
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff King @ 2018-02-13 22:22 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: Junio C Hamano, git

On Tue, Feb 13, 2018 at 01:36:01AM +0100, SZEDER Gábor wrote:

> 'git for-each-ref' should error out when invoked with more than one
> quoting style options.  The tests checking this have two issues:
> 
>   - They run 'git for-each-ref' upstream of a pipe, hiding its exit
>     code, thus don't actually checking that 'git for-each-ref' exits
>     with error code.
> 
>   - They check the error message in a rather roundabout way.
> 
> Ensure that 'git for-each-ref' exits with an error code using the
> 'test_must_fail' helper function, and check its error message by
> grepping its saved standard error.

Yeah, this looks much nicer than the original.

>  for i in "--perl --shell" "-s --python" "--python --tcl" "--tcl --perl"; do
>  	test_expect_success "more than one quoting style: $i" "
> -		git for-each-ref $i 2>&1 | (read line &&
> -		case \$line in
> -		\"error: more than one quoting style\"*) : happy;;
> -		*) false
> -		esac)
> +		test_must_fail git for-each-ref $i 2>err &&
> +		grep '^error: more than one quoting style' err

I suspect in the long run this ought to be test_i18ngrep, but since it's
not localized yet, it makes sense to stop here with this patch.

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] t6300-for-each-ref: fix "more than one quoting style" tests
  2018-02-13 22:22 ` Jeff King
@ 2018-02-15 16:39   ` SZEDER Gábor
  2018-02-15 16:52     ` Jeff King
  0 siblings, 1 reply; 5+ messages in thread
From: SZEDER Gábor @ 2018-02-15 16:39 UTC (permalink / raw)
  To: Jeff King; +Cc: Junio C Hamano, Git mailing list

On Tue, Feb 13, 2018 at 11:22 PM, Jeff King <peff@peff.net> wrote:

>>  for i in "--perl --shell" "-s --python" "--python --tcl" "--tcl --perl"; do
>>       test_expect_success "more than one quoting style: $i" "
>> -             git for-each-ref $i 2>&1 | (read line &&
>> -             case \$line in
>> -             \"error: more than one quoting style\"*) : happy;;
>> -             *) false
>> -             esac)
>> +             test_must_fail git for-each-ref $i 2>err &&
>> +             grep '^error: more than one quoting style' err
>
> I suspect in the long run this ought to be test_i18ngrep, but since it's
> not localized yet, it makes sense to stop here with this patch.

I thought 'git for-each-ref' is plumbing and that means that it
shouldn't be localized.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] t6300-for-each-ref: fix "more than one quoting style" tests
  2018-02-15 16:39   ` SZEDER Gábor
@ 2018-02-15 16:52     ` Jeff King
  2018-02-15 17:41       ` SZEDER Gábor
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff King @ 2018-02-15 16:52 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: Junio C Hamano, Git mailing list

On Thu, Feb 15, 2018 at 05:39:28PM +0100, SZEDER Gábor wrote:

> On Tue, Feb 13, 2018 at 11:22 PM, Jeff King <peff@peff.net> wrote:
> 
> >>  for i in "--perl --shell" "-s --python" "--python --tcl" "--tcl --perl"; do
> >>       test_expect_success "more than one quoting style: $i" "
> >> -             git for-each-ref $i 2>&1 | (read line &&
> >> -             case \$line in
> >> -             \"error: more than one quoting style\"*) : happy;;
> >> -             *) false
> >> -             esac)
> >> +             test_must_fail git for-each-ref $i 2>err &&
> >> +             grep '^error: more than one quoting style' err
> >
> > I suspect in the long run this ought to be test_i18ngrep, but since it's
> > not localized yet, it makes sense to stop here with this patch.
> 
> I thought 'git for-each-ref' is plumbing and that means that it
> shouldn't be localized.

I always assumed stderr was mostly fair game, even for plumbing. At any
rate, I'm willing to ignore the issue until somebody actually proposes a
patch to translate it.

-Peff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] t6300-for-each-ref: fix "more than one quoting style" tests
  2018-02-15 16:52     ` Jeff King
@ 2018-02-15 17:41       ` SZEDER Gábor
  0 siblings, 0 replies; 5+ messages in thread
From: SZEDER Gábor @ 2018-02-15 17:41 UTC (permalink / raw)
  To: Jeff King; +Cc: Junio C Hamano, Git mailing list

On Thu, Feb 15, 2018 at 5:52 PM, Jeff King <peff@peff.net> wrote:
> On Thu, Feb 15, 2018 at 05:39:28PM +0100, SZEDER Gábor wrote:
>
>> On Tue, Feb 13, 2018 at 11:22 PM, Jeff King <peff@peff.net> wrote:
>>
>> >>  for i in "--perl --shell" "-s --python" "--python --tcl" "--tcl --perl"; do
>> >>       test_expect_success "more than one quoting style: $i" "
>> >> -             git for-each-ref $i 2>&1 | (read line &&
>> >> -             case \$line in
>> >> -             \"error: more than one quoting style\"*) : happy;;
>> >> -             *) false
>> >> -             esac)
>> >> +             test_must_fail git for-each-ref $i 2>err &&
>> >> +             grep '^error: more than one quoting style' err
>> >
>> > I suspect in the long run this ought to be test_i18ngrep, but since it's
>> > not localized yet, it makes sense to stop here with this patch.
>>
>> I thought 'git for-each-ref' is plumbing and that means that it
>> shouldn't be localized.
>
> I always assumed stderr was mostly fair game, even for plumbing. At any
> rate, I'm willing to ignore the issue until somebody actually proposes a
> patch to translate it.

Ah, OK, will keep that in mind.

Anyway, the first GETTEXT_POISON build will fail if that error string
ever gets translated but the test doesn't get updated.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, back to index

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-13  0:36 [PATCH] t6300-for-each-ref: fix "more than one quoting style" tests SZEDER Gábor
2018-02-13 22:22 ` Jeff King
2018-02-15 16:39   ` SZEDER Gábor
2018-02-15 16:52     ` Jeff King
2018-02-15 17:41       ` SZEDER Gábor

git@vger.kernel.org mailing list mirror (one of many)

Archives are clonable:
	git clone --mirror https://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.org/gmane.comp.version-control.git

 note: .onion URLs require Tor: https://www.torproject.org/
       or Tor2web: https://www.tor2web.org/

AGPL code for this site: git clone https://public-inbox.org/ public-inbox