Re: 195b7ca6 breaks t9010 at current master
- From
- Brandon Casey <brandon.casey.ctr@nrlssc.navy.mil>
- Date
- Mar 31, 2011, 16:11 UTC
- Message-ID
- <YHiIPkNCiU3RcX-PxtGuaAPfpIMSLtDzcuGX-pUHbb_4SC5aAQu_WQ@cipher.nrlssc.navy.mil>
- In-Reply-To
- <20110329042446.GB25693@elie>
[removed Junio from cc]
On 03/28/2011 11:24 PM, Jonathan Nieder wrote:
Show 42 quoted lines
> Hi,
>
> Øyvind A. Holm wrote:
>
>> When running "make test" at current master (v1.7.4.2-406-gbe919d5),
>> t9010-svn-fe.sh fails. Bisecting shows that 195b7ca6 ("vcs-svn: handle
>> log message with embedded NUL") breaks the test.
>
> Could you try with the following patch applied? It comes from
> squashing the last two patches from the svn-fe branch:
>
> * tests: make sure input to sed is newline terminated
> * vcs-svn: add missing cast to printf argument
>
> Sorry for the breakage.
> ---
> diff --git a/t/t9010-svn-fe.sh b/t/t9010-svn-fe.sh
> index 478c860..6f6175a 100755
> --- a/t/t9010-svn-fe.sh
> +++ b/t/t9010-svn-fe.sh
> @@ -407,7 +407,7 @@ test_expect_success 'NUL in log message, file content, and property name' '
> OBJID
> :000000 100644 OBJID OBJID A greeting
> EOF
> - printf "\n%s" "something with an ASCII NUL (Q)" >expect.message &&
> + printf "\n%s\n" "something with an ASCII NUL (Q)" >expect.message &&
> printf "%s\n" "helQo" >expect.hello1 &&
> printf "%s\n" "link hello" >expect.hello2 &&
> {
> @@ -465,7 +465,11 @@ test_expect_success 'NUL in log message, file content, and property name' '
> git diff-tree --root --stdin |
> sed "s/$_x40/OBJID/g"
> } >actual &&
> - git cat-file commit HEAD | nul_to_q | sed -ne "/^\$/,\$ p" >actual.message &&
> + {
> + git cat-file commit HEAD | nul_to_q &&
> + echo
> + } |
> + sed -ne "/^\$/,\$ p" >actual.message &&
> git cat-file blob HEAD^:greeting | nul_to_q >actual.hello1 &&
> git cat-file blob HEAD:greeting | nul_to_q >actual.hello2 &&
> test_cmp expect actual &&I was just about to send a patch for this, when I noticed it has already been worked around in master by the above.
I'll still share my one-liner for informational purposes which uses perl and in my opinion is a little simpler:
diff --git a/t/t9010-svn-fe.sh b/t/t9010-svn-fe.sh index 478c860..0dcffaa 100755 --- a/t/t9010-svn-fe.sh +++ b/t/t9010-svn-fe.sh @@ -465,7 +465,7 @@ test_expect_success 'NUL in log message, file content, and property name' ' git diff-tree --root --stdin | sed "s/$_x40/OBJID/g" } >actual && - git cat-file commit HEAD | nul_to_q | sed -ne "/^\$/,\$ p" >actual.message && + git cat-file commit HEAD | nul_to_q | perl -ne "print if (/^$/..eof())" >actual.message && git cat-file blob HEAD^:greeting | nul_to_q >actual.hello1 && git cat-file blob HEAD:greeting | nul_to_q >actual.hello2 && test_cmp expect actual && -Brandon