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

Re: git-2.55.0-rc1 t4216 broken TAP failures on non-x86 arch

From
Patrick Steinhardt <ps@pks.im>
Date
Jun 18, 2026, 06:27 UTC
Message-ID
<ajOP1IOjA3EYvRfm@pks.im>
In-Reply-To
<20260617220330.n6byiFQr@teonanacatl.net>
On Wed, Jun 17, 2026 at 06:03:30PM -0400, Todd Zullinger wrote:
Show 49 quoted lines
> Hi,
> 
> Building git-2.55.0-rc1 today, all non-x86 architectures
> failed with:
> 
>     Test Summary Report
>     -------------------
>     t4216-log-bloom.sh                               (Wstat: 0 Tests: 167 Failed: 0)
>       Parse errors: Unknown TAP token: "--- highbit1/expect 2026-06-17 19:44:07.555797743 +0000"
> 		    Unknown TAP token: "+++ highbit1/actual 2026-06-17 19:44:07.563651478 +0000"
> 		    Unknown TAP token: "@@ -1 +1 @@"
> 		    Unknown TAP token: "-52a9"
> 		    Unknown TAP token: "+c01f"
>     Files=1047, Tests=34680, 1072 wallclock secs ( 7.61 usr  1.61 sys + 395.73 cusr 586.23 csys = 991.18 CPU)
>     Result: FAIL
> 
> The test output is:
> 
>     ok 148 - setup check value of version 1 changed-path
>     --- highbit1/expect     2026-06-17 19:44:07.555797743 +0000
>     +++ highbit1/actual     2026-06-17 19:44:07.563651478 +0000
>     @@ -1 +1 @@
>     -52a9
>     +c01f
>     ok 149 # SKIP check value of version 1 changed-path (missing SIGNED_CHAR_BY_DEFAULT)
> 
> This looks like it comes from the following chunk of code in
> the test:
> 
>     # expect will not match actual if char is unsigned by default. Write the test
>     # in this way, so that a user running this test script can still see if the two
>     # files match. (It will appear as an ordinary success if they match, and a skip
>     # if not.)
>     if test_cmp highbit1/expect highbit1/actual
>     then
> 	    test_set_prereq SIGNED_CHAR_BY_DEFAULT
>     fi
>     test_expect_success SIGNED_CHAR_BY_DEFAULT 'check value of version 1 changed-path' '
> 	    # Only the prereq matters for this test.
> 	    true
>     '
> 
> It seems like we could (and perhaps should) redirect the
> output from test_cmp to a file (or /dev/null).
> 
> But... are we expecting these tests to not pass the test_cmp
> on any non-x86 arch in the first place?  Or is this exposing
> something broken in the test setup (test-tool read-graph
> bloom-filters) or elsewhere?

Hm, this thing is indeed somewhat puzzling to me. I assume the intent is to give the developer some information that their platform is using signed characters by default? Other than that it's not really doing anything, as the prereq is only used by the one test shown above. I hope that Taylor has some more insight here.

There's two potential fixes:
  - We can just drop this completely, as it ultimately doesn't even end
    up doing anything.
  - We can convert the call to `test_cmp` into a `test_lazy_prereq`,
    like done in the below patch, which retains the current behaviour.
> Looking at some older builds for non-x86 architectures, they
> are indeed failing to set the SIGNED_CHAR_BY_DEFAULT prereq.
Well, I guess that's intended.
Patrick
diff --git a/t/t4216-log-bloom.sh b/t/t4216-log-bloom.sh
index 1064990de3..c7478e2513 100755
--- a/t/t4216-log-bloom.sh
+++ b/t/t4216-log-bloom.sh
@@ -581,10 +581,10 @@ test_expect_success 'setup check value of version 1 changed-path' '
 # in this way, so that a user running this test script can still see if the two
 # files match. (It will appear as an ordinary success if they match, and a skip
 # if not.)
-if test_cmp highbit1/expect highbit1/actual
-then
-	test_set_prereq SIGNED_CHAR_BY_DEFAULT
-fi
+test_lazy_prereq SIGNED_CHAR_BY_DEFAULT '
+	test_cmp highbit1/expect highbit1/actual
+'
+
 test_expect_success SIGNED_CHAR_BY_DEFAULT 'check value of version 1 changed-path' '
 	# Only the prereq matters for this test.
 	true
Previous: Todd ZullingerNext: Junio C Hamano
Message 2 of 6 in “git-2.55.0-rc1 t4216 broken TAP failures on non-x86 arch”
  1. Todd ZullingerJun 17, 2026
  2. Patrick SteinhardtJun 18, 2026
  3. Junio C HamanoJun 18, 2026
  4. Jeff KingJun 18, 2026
  5. Junio C HamanoJun 19, 2026
  6. Patrick SteinhardtJun 19, 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.