threads / patch / 37546

patcht9300: use cmp instead of test_cmp to compare binary files

Subject: [PATCH] t9300: use cmp instead of test_cmp to compare binary files

## tl;dr

4 messages between Sep 12, 2014 and Sep 12, 2014. Diffs are folded; open one to read it.

replies: 3people: 3as markdown or json

Johannes Sixt· Sep 12, 2014, 17:34 UTC · lore

test_cmp is intended to produce diff output for human consumption. The input in one instance in t9300-fast-import.sh are binary files, however. Use cmp to compare the files.

This was noticed because on Windows we have a special implementation of test_cmp in pure bash code (to ignore differences due to intermittent CR in actual output), and bash runs into an infinite loop due to the binary nature of the input.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 t/t9300-fast-import.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to t/t9300-fast-import.sh +1 −1
diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh
index 99f5161..4b13170 100755
--- a/t/t9300-fast-import.sh
+++ b/t/t9300-fast-import.sh
@@ -2687,7 +2687,7 @@ test_expect_success 'R: verify created pack' '
 test_expect_success \
 	'R: verify written objects' \
 	'git --git-dir=R/.git cat-file blob big-file:big1 >actual &&
-	 test_cmp expect actual &&
+	 cmp expect actual &&
 	 a=$(git --git-dir=R/.git rev-parse big-file:big1) &&
 	 b=$(git --git-dir=R/.git rev-parse big-file:big2) &&
 	 test $a = $b'
-- 
2.0.0.12.gbcf935e
Junio C Hamano· Sep 12, 2014, 17:58 UTC · re: Johannes Sixt · lore

Re: [PATCH] t9300: use cmp instead of test_cmp to compare binary files

Johannes Sixt <j6t@kdbg.org> writes:
> test_cmp is intended to produce diff output for human consumption. The
> input in one instance in t9300-fast-import.sh are binary files, however.
> Use cmp to compare the files.
Thanks.
Show 24 quoted lines
>
> This was noticed because on Windows we have a special implementation of
> test_cmp in pure bash code (to ignore differences due to intermittent CR
> in actual output), and bash runs into an infinite loop due to the binary
> nature of the input.
>
> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
> ---
>  t/t9300-fast-import.sh | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh
> index 99f5161..4b13170 100755
> --- a/t/t9300-fast-import.sh
> +++ b/t/t9300-fast-import.sh
> @@ -2687,7 +2687,7 @@ test_expect_success 'R: verify created pack' '
>  test_expect_success \
>  	'R: verify written objects' \
>  	'git --git-dir=R/.git cat-file blob big-file:big1 >actual &&
> -	 test_cmp expect actual &&
> +	 cmp expect actual &&
>  	 a=$(git --git-dir=R/.git rev-parse big-file:big1) &&
>  	 b=$(git --git-dir=R/.git rev-parse big-file:big2) &&
>  	 test $a = $b'
Thomas Braun· Sep 12, 2014, 18:14 UTC · re: Junio C Hamano · lore

Re: [PATCH] t9300: use cmp instead of test_cmp to compare binary files

Am 12.09.2014 um 19:58 schrieb Junio C Hamano:
Show 32 quoted lines
> Johannes Sixt <j6t@kdbg.org> writes:
> 
>> test_cmp is intended to produce diff output for human consumption. The
>> input in one instance in t9300-fast-import.sh are binary files, however.
>> Use cmp to compare the files.
> 
> Thanks.
> 
>>
>> This was noticed because on Windows we have a special implementation of
>> test_cmp in pure bash code (to ignore differences due to intermittent CR
>> in actual output), and bash runs into an infinite loop due to the binary
>> nature of the input.
>>
>> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
>> ---
>>  t/t9300-fast-import.sh | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh
>> index 99f5161..4b13170 100755
>> --- a/t/t9300-fast-import.sh
>> +++ b/t/t9300-fast-import.sh
>> @@ -2687,7 +2687,7 @@ test_expect_success 'R: verify created pack' '
>>  test_expect_success \
>>  	'R: verify written objects' \
>>  	'git --git-dir=R/.git cat-file blob big-file:big1 >actual &&
>> -	 test_cmp expect actual &&
>> +	 cmp expect actual &&
>>  	 a=$(git --git-dir=R/.git rev-parse big-file:big1) &&
>>  	 b=$(git --git-dir=R/.git rev-parse big-file:big2) &&
>>  	 test $a = $b'

May I suggest to use test_cmp_bin instead of plain cmp? test_cmp_bin was introduced in b93e6e36 (t5000, t5003: do not use test_cmp to compare binary files, 2014-06-04) and by default is plain cmp.

Johannes Sixt· Sep 12, 2014, 19:47 UTC · re: Thomas Braun · lore

[PATCH v2] t9300: use test_cmp_bin instead of test_cmp to compare binary files

test_cmp is intended to produce diff output for human consumption. The input in one instance in t9300-fast-import.sh are binary files, however. Use test_cmp_bin to compare the files.

This was noticed because on Windows we have a special implementation of test_cmp in pure bash code (to ignore differences due to intermittent CR in actual output), and bash runs into an infinite loop due to the binary nature of the input.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
Am 12.09.2014 um 20:14 schrieb Thomas Braun:
> May I suggest to use test_cmp_bin instead of plain cmp?

Of course! I did remember that there was talk about it, but missed that we actually implemented it. Sorry.

 t/t9300-fast-import.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Show changes to t/t9300-fast-import.sh +1 −1
diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh
index 99f5161..72845f6 100755
--- a/t/t9300-fast-import.sh
+++ b/t/t9300-fast-import.sh
@@ -2687,7 +2687,7 @@ test_expect_success 'R: verify created pack' '
 test_expect_success \
 	'R: verify written objects' \
 	'git --git-dir=R/.git cat-file blob big-file:big1 >actual &&
-	 test_cmp expect actual &&
+	 test_cmp_bin expect actual &&
 	 a=$(git --git-dir=R/.git rev-parse big-file:big1) &&
 	 b=$(git --git-dir=R/.git rev-parse big-file:big2) &&
 	 test $a = $b'
-- 
2.0.0.12.gbcf935e

← back to recent threads