]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t1006: fix broken TAP format
authorPatrick Steinhardt <ps@pks.im>
Tue, 8 Jul 2025 10:18:58 +0000 (12:18 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 8 Jul 2025 21:54:43 +0000 (14:54 -0700)
When running t1006 via Meson we receive an error about invalid TAP
format:

    $ meson test t1006-cat-file
    1/1 t1006-cat-file        OK              3.86s   420 subtests passed

    stdout: 147: UNKNOWN: c308ae01840d8e620ad554ee5d77fe114dc2d912:path with spaces
    stdout: 159: UNKNOWN: 3625298bf5e7c464a7d0e38ea80c2a5b5904d9a3e5b2b025b67f360e09b68dc7:path with spaces
    ERROR: Unknown TAP output lines for a supported TAP version.
    This is probably a bug in the test; if they are not TAP syntax, prefix them with a #

    Ok:                1
    Fail:              0

While Meson copes with it alright, it's still annoying to see these
errors on every test run.

The root cause of the broken format is a call to grep(1) that gets
executed outside of a test case, which has been added recently via
9fd38038b9c (t1006: update 'run_tests' to test generic object
specifiers, 2025-06-02). This call is done to determine whether a
subsequent test case is expected to succeed or fail, so it makes sense
to have it execute outside of a test case. But whenever we do that, we
must be extra careful to not generate any output that breaks the TAP
format.

Fix the issue by adding '-q' to the command so that it doesn't print
any matching lines.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1006-cat-file.sh

index f123ef1e360aca702f193033295ac5300582aa1f..1f61b666a7d382d4deb65ad561f270409f826e48 100755 (executable)
@@ -197,7 +197,7 @@ $content"
     # FIXME: %(rest) is incompatible with object names that include whitespace,
     # e.g. HEAD:path/to/a/file with spaces. Use the resolved OID as input to
     # test this instead of the raw object name.
-    if echo "$object_name" | grep " "; then
+    if echo "$object_name" | grep -q " "; then
        test_rest=test_expect_failure
     else
        test_rest=test_expect_success