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

Re: [PATCH v2 4/5] tests: replace remaining packetize() with "test-tool pkt-line"

From
Jeff King <peff@peff.net>
Date
Jul 13, 2021, 20:58 UTC
Message-ID
<YO3+dBHL5ZBe/NbU@coredump.intra.peff.net>
In-Reply-To
<patch-4.5-a44e1790f2a-20210712T164208Z-avarab@gmail.com>
On Mon, Jul 12, 2021 at 06:44:19PM +0200, Ævar Arnfjörð Bjarmason wrote:
Show 9 quoted lines
> Move the only remaining users of "packetize()" over to "test-tool
> pkt-line", for this we need a new "pack-raw-stdin" subcommand in the
> test-tool. The "pack" command takes input on stdin, but splits it by
> "\n", furthermore we'll format the output using C-strings, so the
> embedded "\0" being tested for here would cause the string to be
> truncated.
> 
> So we need another mode that just calls packet_write() on the raw
> input we got on stdin.

Makes sense. Lacking this "raw" version was the sticking point in the past for using the helper in more places.

Show 6 quoted lines
> +static void pack_raw_stdin(void)
> +{
> +	struct strbuf sb = STRBUF_INIT;
> +	strbuf_read(&sb, 0, 0);
> +	if (strbuf_read(&sb, 0, 0) < 0)
> +		die_errno("failed to read from stdin");
What's up with the two reads here?

It looks like just a duplication. And it happens to work because each one tries to read to eof, making the second one generally a noop.

Show 17 quoted lines
> diff --git a/t/t5570-git-daemon.sh b/t/t5570-git-daemon.sh
> index 2dde0348816..b52afb0cdea 100755
> --- a/t/t5570-git-daemon.sh
> +++ b/t/t5570-git-daemon.sh
> @@ -193,10 +193,12 @@ test_expect_success 'hostname cannot break out of directory' '
>  '
>  
>  test_expect_success FAKENC 'hostname interpolation works after LF-stripping' '
> -	{
> -		printf "git-upload-pack /interp.git\n\0host=localhost" | packetize
> -		printf "0000"
> -	} >input &&
> +	printf "git-upload-pack /interp.git\n\0host=localhost" >has-null &&
> +	test-tool pkt-line pack-raw-stdin >input <has-null &&
> +	test-tool pkt-line pack >>input <<-\EOF &&
> +	0000
> +	EOF

This is a minor style nit, but I really prefer redirecting output from a block (as in the original) rather than iterative appending (in the result). IMHO it makes it more obvious what is going into the file and what is not.

I.e.:
  {
          printf "git-upload-pack /interp.git\n\0host=localhost" |
	  test-tool pkt-line pack-raw-stdin &&
	  printf "0000" | test-tool pkt-line pack
  } >input

(again here the packing of "0000" is pointless, but I'm OK with it for consistency).

-Peff
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 15 of 33 in “tests: migrate to "test-tool pkt-line"”
  1. 0/5 tests: migrate to "test-tool pkt-line"Ævar Arnfjörð Bjarmason, Jul 7, 2021
  2. 1/5 serve tests: add missing "extra delim" testÆvar Arnfjörð Bjarmason, Jul 7, 2021
  3. 2/5 serve tests: use test_cmp in "protocol violations" testÆvar Arnfjörð Bjarmason, Jul 7, 2021
  4. 3/5 tests: replace [de]packetize() shell+perl test-tool pkt-lineÆvar Arnfjörð Bjarmason, Jul 7, 2021
  5. 4/5 tests: replace remaining packetize() with "test-tool pkt-line"Ævar Arnfjörð Bjarmason, Jul 7, 2021
  6. 5/5 test-lib-functions.sh: remove unused [de]packetize() functionsÆvar Arnfjörð Bjarmason, Jul 7, 2021
  7. 0/5 tests: migrate to "test-tool pkt-line"Ævar Arnfjörð Bjarmason, Jul 12, 2021
  8. 1/5 serve tests: add missing "extra delim" testÆvar Arnfjörð Bjarmason, Jul 12, 2021
  9. 2/5 serve tests: use test_cmp in "protocol violations" testÆvar Arnfjörð Bjarmason, Jul 12, 2021
  10. 3/5 tests: replace [de]packetize() shell+perl test-tool pkt-lineÆvar Arnfjörð Bjarmason, Jul 12, 2021
  11. Jeff KingJul 13, 2021
  12. Ævar Arnfjörð BjarmasonJul 13, 2021
  13. Jeff KingJul 14, 2021
  14. 4/5 tests: replace remaining packetize() with "test-tool pkt-line"Ævar Arnfjörð Bjarmason, Jul 12, 2021
  15. Jeff KingJul 13, 2021
  16. Ævar Arnfjörð BjarmasonJul 13, 2021
  17. Jeff KingJul 14, 2021
  18. 5/5 test-lib-functions.sh: remove unused [de]packetize() functionsÆvar Arnfjörð Bjarmason, Jul 12, 2021
  19. Junio C HamanoJul 12, 2021
  20. Jeff KingJul 13, 2021
  21. 0/5 tests: migrate to "test-tool pkt-line"Ævar Arnfjörð Bjarmason, Jul 14, 2021
  22. 1/5 serve tests: add missing "extra delim" testÆvar Arnfjörð Bjarmason, Jul 14, 2021
  23. 3/5 tests: replace [de]packetize() shell+perl test-tool pkt-lineÆvar Arnfjörð Bjarmason, Jul 14, 2021
  24. Taylor BlauJul 14, 2021
  25. Junio C HamanoJul 14, 2021
  26. 2/5 serve tests: use test_cmp in "protocol violations" testÆvar Arnfjörð Bjarmason, Jul 14, 2021
  27. 4/5 tests: replace remaining packetize() with "test-tool pkt-line"Ævar Arnfjörð Bjarmason, Jul 14, 2021
  28. 5/5 test-lib-functions.sh: remove unused [de]packetize() functionsÆvar Arnfjörð Bjarmason, Jul 14, 2021
  29. test-lib-functions: use test-tool for [de]packetize()Ævar Arnfjörð Bjarmason, Jul 16, 2021
  30. Taylor BlauJul 16, 2021
  31. Jeff KingJul 16, 2021
  32. Jeff KingJul 16, 2021
  33. Junio C HamanoJul 19, 2021

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.