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

Re: [PATCH V3 1/2] patch-id: Fix antipatterns in tests

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 1, 2022, 23:16 UTC
Message-ID
<xmqqy22u9nzr.fsf@gitster.g>
In-Reply-To
<20220131235218.27392-1-jerry@skydio.com>
Jerry Zhang <jerry@skydio.com> writes:
Show 8 quoted lines
> Clean up the tests for patch-id by moving file preparation
> tasks inside the test body and redirecting files directly into
> stdin instead of using 'cat'.
>
> Signed-off-by: Jerry Zhang <jerry@skydio.com>
> ---
> V2->V3:
> - Quote the EOF marker
Yes but no.
>  test_expect_success 'patch-id handles no-nl-at-eof markers' '
> -	cat nonl | calc_patch_id nonl &&
> -	cat withnl | calc_patch_id withnl &&
> +	cat >nonl <<-'EOF' &&

We started the "executable" part of the test_expect_success as a single-quoted string, and then after writing <<-, we stepped out of that single-quote pair. Then we are writing E O F unquoted, and stepped back into another single-quote pair here. So, to the shell that runs this executable part, it is exactly the same as

	cat >nonl <<-EOF &&

side note: if it were not in a plain shell script (not the executable part that is passed as a single string to the test_expect_success function as an argument), what we see above, quoting EOF within a pair of single-quotes, is perfectly acceptable thing to do. But not here, for the reasons explained above.

Show 14 quoted lines
> +	diff --git i/a w/a
> +	index e69de29..2e65efe 100644
> +	--- i/a
> +	+++ w/a
> +	@@ -0,0 +1 @@
> +	+a
> +	\ No newline at end of file
> +	diff --git i/b w/b
> +	index e69de29..6178079 100644
> +	--- i/b
> +	+++ w/b
> +	@@ -0,0 +1 @@
> +	+b
> +	'EOF'

Same here. It is exactly the same as writing EOF without any quotes around it, just like the opening one we saw earlier.

In other words, the above is not quoting at all.

I think I demonstrated the way we should write this in my earlier review when I pointed out this exiting issue this step is fixing (https://lore.kernel.org/git/xmqqmtjbh5fu.fsf@gitster.g/):

	test_expect_success "title string" '
		...
		command <<-\EOF &&
		here document indented by tab
		more document
		EOF
Previous: Junio C HamanoNext: Jerry Zhang
Message 10 of 11 in “format-patch: Fix antipatterns in tests”
  1. 1/2 format-patch: Fix antipatterns in testsJerry Zhang, Jan 31, 2022
  2. 2/2 patch-id: fix scan_hunk_header on diffs with 1 line of before/afterJerry Zhang, Jan 31, 2022
  3. 2/2 patch-id: fix scan_hunk_header on diffs with 1 line of before/afterJerry Zhang, Jan 31, 2022
  4. 2/2 patch-id: fix scan_hunk_header on diffs with 1 line of before/afterJerry Zhang, Feb 2, 2022
  5. 1/2 patch-id: Fix antipatterns in testsJerry Zhang, Jan 31, 2022
  6. Junio C HamanoJan 31, 2022
  7. 1/2 patch-id: Fix antipatterns in testsJerry Zhang, Jan 31, 2022
  8. Johannes SixtFeb 1, 2022
  9. Junio C HamanoFeb 1, 2022
  10. Junio C HamanoFeb 1, 2022
  11. 1/2 patch-id: Fix antipatterns in testsJerry Zhang, Feb 2, 2022

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.