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

[GSOC][PATCH V2] t5500: simplify test implementation and fix git exit code suppression

From
Shreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com>
Date
Jan 21, 2026, 12:54 UTC
Message-ID
<20260121130012.888299-1-shreyanshpaliwalcmsmn@gmail.com>
In-Reply-To
<xmqqikcw1bei.fsf@gitster.g>

The 'shallow since with commit graph and already-seen commit” test uses a convoluted here-doc that combines manual input construction with packetize, echo and embedded Git commands. This structure hides failures from the git commands, as their exit codes are suppressed inside echo command substitution and being on the upstream side of pipes.

Instead of using here-doc to construct the pack protocol that is directly sent to the 'git upload-pack' command being tested, capture the outputs of the git commands upfront and use the 'test-tool pkt-line pack' tool to construct the input in a temporary file, and then feed it to the command.

This has a few advantages:
* Executing the git commands outside the here-doc
avoids suppressing their exit codes and makes
debugging easier.
* It removes the need to manually count and
manage pkt-line lengths to keep in line with
the v2 protocol, as the tool handles this internally.
Signed-off-by: Shreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com>
---
Changes in V2:
 - Fixed commit message wording and tense
 - Improved line wrapping
 - Fixed a trailing whitespace
 t/t5500-fetch-pack.sh | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh
index 2677cd5faa..4bb56c167a 100755
--- a/t/t5500-fetch-pack.sh
+++ b/t/t5500-fetch-pack.sh
@@ -892,15 +892,20 @@ test_expect_success 'shallow since with commit graph and already-seen commit' '
 	test_commit other &&
 	git commit-graph write --reachable &&
 	git config core.commitGraph true &&
-
-	GIT_PROTOCOL=version=2 git upload-pack . <<-EOF >/dev/null
-	0012command=fetch
-	$(echo "object-format=$(test_oid algo)" | packetize)
-	00010013deepen-since 1
-	$(echo "want $(git rev-parse other)" | packetize)
-	$(echo "have $(git rev-parse main)" | packetize)
+	oid_algo=$(test_oid algo) &&
+	oid_other=$(git rev-parse other) &&
+	oid_main=$(git rev-parse main) &&
+
+	test-tool pkt-line pack >input <<-EOF &&
+	command=fetch
+	object-format=$oid_algo
+	0001
+	deepen-since 1
+	want $oid_other
+	have $oid_main
 	0000
 	EOF
+	GIT_PROTOCOL=version=2 git upload-pack . <input >/dev/null
 	)
 '
 
-- 
2.52.0
Previous: Junio C HamanoNext: Shreyansh Paliwal
Message 11 of 12 in “t5500-fetch-pack.sh: fix suppression of Git exit code in tests”
  1. t5500-fetch-pack.sh: fix suppression of Git exit code in testsShreyansh Paliwal, Jan 11, 2026
  2. Junio C HamanoJan 11, 2026
  3. Patrick SteinhardtJan 12, 2026
  4. Shreyansh PaliwalJan 12, 2026
  5. Junio C HamanoJan 12, 2026
  6. Shreyansh PaliwalJan 13, 2026
  7. Junio C HamanoJan 13, 2026
  8. [GSOC][PATCH] t5500: simplify test implementation and fix git exit code suppressionShreyansh Paliwal, Jan 13, 2026
  9. Shreyansh PaliwalJan 15, 2026
  10. Junio C HamanoJan 20, 2026
  11. [GSOC][PATCH V2] t5500: simplify test implementation and fix git exit code suppressionShreyansh Paliwal, Jan 21, 2026
  12. t5500-fetch-pack.sh: fix suppression of Git exit code in testsShreyansh Paliwal, Jan 12, 2026

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.