Re: [PATCH v3 1/3] tests: Prepare --textconv tests for correctly-failing conversion program

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

 



On Mon, Sep 27, 2010 at 11:23:35AM -0700, Junio C Hamano wrote:
> Kirill Smelkov <kirr@xxxxxxxxxxxxxxxxxxx> writes:


> > +sed 's/^bin:/converted:/' "$@" >helper.out
> 
> Minor nit: this is inconsistent with the check done with grep above that
> insists that the colon is followed by a SP.

Yes, you are right. I'll amend it.

> > diff --git a/t/t4042-diff-textconv-caching.sh b/t/t4042-diff-textconv-caching.sh
> > index 91f8198..7668099 100755
> > --- a/t/t4042-diff-textconv-caching.sh
> > +++ b/t/t4042-diff-textconv-caching.sh
> > @@ -5,18 +5,19 @@ test_description='test textconv caching'
> >  
> >  cat >helper <<'EOF'
> >  #!/bin/sh
> > -sed 's/^/converted: /' "$@" >helper.out
> > +grep -q '^bin: ' "$@" || { echo "E: $@ is not \"binary\" file" 1>&2; exit 1; }
> 
> You are not feeding arguments you think you are to the above "echo":
> 
>         $ cat >/var/tmp/j.sh <<\EOF
>         #!/bin/sh
>         e () {
>                 i=0
>                 for s
>                 do
>                         i=$(( $i + 1 ))
>                         echo "$i: $s"
>                 done
>         }
>         f () {
>                 e "E: $@ is not binary"
>         }
>         f 1 "2 3" 4
>         EOF
>         $ sh /var/tmp/j.sh
>         1: E: 1
>         2: 2 3
>         3: 4 is not binary
> 
> Granted, echo is forgiving and will concatenate the arguments it gets with
> a space in between, but you would either want to either:
> 
>  (1) make it more explicit that helper gets only one argument, by saying
>      "$1" instead of "$@", in all places in the helper script; or
> 
>  (2) if you are planning to make 'helper' capable of handling multiple
>      input files, show the error message for the ones that are not binary
>      (you would probably need a loop for that).
> 
> I think (1) would be sufficient in this case.

I too think (1) is right. It was just that originally there was $@
(which I now understand was wrong). So ok to apply the following patch
on top of this series? (I assume it's ok, and will repost the whole
thing)

---- 8< ----

From: Kirill Smelkov <kirr@xxxxxxxxxx>
Date: Tue, 28 Sep 2010 15:34:48 +0400
Subject: [PATCH 4/4] t4042,t8006,t8007: Textconv converter should take only one argument

Textconv helper in this tests was incorrectly referencing $@, which goes
agains textconv "spec". I quote Documentation/gitattributes.txt

""" The `textconv` config option is used to define a program for
    performing such a conversion. The program should take a single
    argument, the name of a file to convert, and produce the
    resulting text on stdout. """

So correct textconv helpers to use $1 instead.

Noticed-by: Junio C Hamano <gitster@xxxxxxxxx>
Signed-off-by: Kirill Smelkov <kirr@xxxxxxxxxx>
---
 t/t4042-diff-textconv-caching.sh |    4 ++--
 t/t8006-blame-textconv.sh        |    4 ++--
 t/t8007-cat-file-textconv.sh     |    4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/t/t4042-diff-textconv-caching.sh b/t/t4042-diff-textconv-caching.sh
index 68fee12..6aaa10b 100755
--- a/t/t4042-diff-textconv-caching.sh
+++ b/t/t4042-diff-textconv-caching.sh
@@ -5,8 +5,8 @@ test_description='test textconv caching'
 
 cat >helper <<'EOF'
 #!/bin/sh
-grep -q '^bin: ' "$@" || { echo "E: $@ is not \"binary\" file" 1>&2; exit 1; }
-sed 's/^bin: /converted: /' "$@" >helper.out
+grep -q '^bin: ' "$1" || { echo "E: $1 is not \"binary\" file" 1>&2; exit 1; }
+sed 's/^bin: /converted: /' "$1" >helper.out
 cat helper.out
 EOF
 chmod +x helper
diff --git a/t/t8006-blame-textconv.sh b/t/t8006-blame-textconv.sh
index a8c311f..dbf623b 100755
--- a/t/t8006-blame-textconv.sh
+++ b/t/t8006-blame-textconv.sh
@@ -9,8 +9,8 @@ find_blame() {
 
 cat >helper <<'EOF'
 #!/bin/sh
-grep -q '^bin: ' "$@" || { echo "E: $@ is not \"binary\" file" 1>&2; exit 1; }
-sed 's/^bin: /converted: /' "$@"
+grep -q '^bin: ' "$1" || { echo "E: $1 is not \"binary\" file" 1>&2; exit 1; }
+sed 's/^bin: /converted: /' "$1"
 EOF
 chmod +x helper
 
diff --git a/t/t8007-cat-file-textconv.sh b/t/t8007-cat-file-textconv.sh
index 5e2e0d2..78a0085 100755
--- a/t/t8007-cat-file-textconv.sh
+++ b/t/t8007-cat-file-textconv.sh
@@ -5,8 +5,8 @@ test_description='git cat-file textconv support'
 
 cat >helper <<'EOF'
 #!/bin/sh
-grep -q '^bin: ' "$@" || { echo "E: $@ is not \"binary\" file" 1>&2; exit 1; }
-sed 's/^bin: /converted: /' "$@"
+grep -q '^bin: ' "$1" || { echo "E: $1 is not \"binary\" file" 1>&2; exit 1; }
+sed 's/^bin: /converted: /' "$1"
 EOF
 chmod +x helper
 
-- 
1.7.3.19.g3fe0a

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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]