git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] tests: fix and add lint for non-portable head -c N

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 23, 2018, 15:42 UTC
Message-ID
<xmqqmutdjdid.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20180823091427.1756-1-avarab@gmail.com>
Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
> Junio: Even though this isn't a 2.19.0-rc0 regression I think it makes
> sense for 2.19.0. The fix is trivial, and it'll unbreak (at least some
> of) the tests on stock git on OpenBSD.

I would have been a bit more sympathetic if this were recent regression (say, 2.18 or so), even if it is not new in this cycle, and the patch applied to the target track cleanly (say, maint or maint-2.17), but seeing that some of these are quite old, dating back to 2009, I am not sure I am enthused.

The changes certainly look trivial.  Let's apply.
Thanks.
Show 58 quoted lines
>
> OpenBSD guys: If you CC the git mailing list when you find you need to
> apply patches like these, we're happy to fix this more pro-actively. I
> just happened to be testing the upcoming 2.19.0 on OpenBSD and spotted
> this.
>
>  t/check-non-portable-shell.pl | 1 +
>  t/t5310-pack-bitmaps.sh       | 2 +-
>  t/test-lib.sh                 | 4 ++--
>  3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl
> index d5823f71d8..94a7e6165e 100755
> --- a/t/check-non-portable-shell.pl
> +++ b/t/check-non-portable-shell.pl
> @@ -35,6 +35,7 @@ sub err {
>  		chomp;
>  	}
>  
> +	/\bhead\s+-c\b/ and err 'head -c is not portable (use test_copy_bytes BYTES <file >out)';
>  	/\bsed\s+-i/ and err 'sed -i is not portable';
>  	/\becho\s+-[neE]/ and err 'echo with option is not portable (use printf)';
>  	/^\s*declare\s+/ and err 'arrays/declare not portable';
> diff --git a/t/t5310-pack-bitmaps.sh b/t/t5310-pack-bitmaps.sh
> index 557bd0d0c0..7bff7923f2 100755
> --- a/t/t5310-pack-bitmaps.sh
> +++ b/t/t5310-pack-bitmaps.sh
> @@ -335,7 +335,7 @@ test_expect_success 'truncated bitmap fails gracefully' '
>  	git rev-list --use-bitmap-index --count --all >expect &&
>  	bitmap=$(ls .git/objects/pack/*.bitmap) &&
>  	test_when_finished "rm -f $bitmap" &&
> -	head -c 512 <$bitmap >$bitmap.tmp &&
> +	test_copy_bytes 512 <$bitmap >$bitmap.tmp &&
>  	mv -f $bitmap.tmp $bitmap &&
>  	git rev-list --use-bitmap-index --count --all >actual 2>stderr &&
>  	test_cmp expect actual &&
> diff --git a/t/test-lib.sh b/t/test-lib.sh
> index 8bb0f4348e..44288cbb59 100644
> --- a/t/test-lib.sh
> +++ b/t/test-lib.sh
> @@ -867,7 +867,7 @@ then
>  		# handle only executables, unless they are shell libraries that
>  		# need to be in the exec-path.
>  		test -x "$1" ||
> -		test "# " = "$(head -c 2 <"$1")" ||
> +		test "# " = "$(test_copy_bytes 2 <"$1")" ||
>  		return;
>  
>  		base=$(basename "$1")
> @@ -882,7 +882,7 @@ then
>  		# do not override scripts
>  		if test -x "$symlink_target" &&
>  		    test ! -d "$symlink_target" &&
> -		    test "#!" != "$(head -c 2 < "$symlink_target")"
> +		    test "#!" != "$(test_copy_bytes 2 <"$symlink_target")"
>  		then
>  			symlink_target=../valgrind.sh
>  		fi
Previous: Derrick StoleeNext: Ævar Arnfjörð Bjarmason
Message 32 of 33 in “tests: fix and add lint for non-portable head -c N”
  1. tests: fix and add lint for non-portable head -c NÆvar Arnfjörð Bjarmason, Aug 23, 2018
  2. Test failures on OpenBSDÆvar Arnfjörð Bjarmason, Aug 23, 2018
  3. Junio C HamanoAug 23, 2018
  4. 1/2 tests: fix and add lint for non-portable head -c NÆvar Arnfjörð Bjarmason, Aug 23, 2018
  5. Jeff KingAug 23, 2018
  6. 2/2 tests: fix and add lint for non-portable seqÆvar Arnfjörð Bjarmason, Aug 23, 2018
  7. Junio C HamanoAug 23, 2018
  8. Ævar Arnfjörð BjarmasonAug 23, 2018
  9. 0/5 OpenBSD & AIX etc. portability fixesÆvar Arnfjörð Bjarmason, Aug 23, 2018
  10. 1/5 tests: fix and add lint for non-portable head -c NÆvar Arnfjörð Bjarmason, Aug 23, 2018
  11. 2/5 tests: fix and add lint for non-portable seqÆvar Arnfjörð Bjarmason, Aug 23, 2018
  12. 3/5 tests: use shorter here-docs in chainlint.sed for AIX sedÆvar Arnfjörð Bjarmason, Aug 23, 2018
  13. Junio C HamanoAug 23, 2018
  14. Eric SunshineAug 23, 2018
  15. 0/6 OpenBSD & AIX etc. portability fixesÆvar Arnfjörð Bjarmason, Aug 24, 2018
  16. 1/6 tests: fix and add lint for non-portable head -c NÆvar Arnfjörð Bjarmason, Aug 24, 2018
  17. 2/6 tests: fix and add lint for non-portable seqÆvar Arnfjörð Bjarmason, Aug 24, 2018
  18. 3/6 tests: fix comment syntax in chainlint.sed for AIX sedÆvar Arnfjörð Bjarmason, Aug 24, 2018
  19. Eric SunshineAug 24, 2018
  20. 4/6 tests: use shorter here-docs in chainlint.sed for AIX sedÆvar Arnfjörð Bjarmason, Aug 24, 2018
  21. Eric SunshineAug 24, 2018
  22. Ævar Arnfjörð BjarmasonAug 28, 2018
  23. Eric SunshineAug 28, 2018
  24. Junio C HamanoAug 27, 2018
  25. 5/6 tests: fix version-specific portability issue in Perl JSONÆvar Arnfjörð Bjarmason, Aug 24, 2018
  26. Eric SunshineAug 24, 2018
  27. 6/6 tests: fix and add lint for non-portable grep --fileÆvar Arnfjörð Bjarmason, Aug 24, 2018
  28. 4/5 tests: fix version-specific portability issue in Perl JSONÆvar Arnfjörð Bjarmason, Aug 23, 2018
  29. 5/5 tests: fix and add lint for non-portable grep --fileÆvar Arnfjörð Bjarmason, Aug 23, 2018
  30. Junio C HamanoAug 23, 2018
  31. Derrick StoleeAug 24, 2018
  32. Junio C HamanoAug 23, 2018
  33. Ævar Arnfjörð BjarmasonAug 23, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.