)]}'
{
  "commit": "389c83025dbde15d30d0791281133bf30e45078d",
  "tree": "568cb53b305a9c95537f292dab6391162304d8c8",
  "parents": [
    "c2d2d173ae6ba4b354a36b3ba732c8a11379d6ec"
  ],
  "author": {
    "name": "Patrick Steinhardt",
    "email": "ps@pks.im",
    "time": "Thu Jun 04 12:07:38 2026 +0200"
  },
  "committer": {
    "name": "Junio C Hamano",
    "email": "gitster@pobox.com",
    "time": "Fri Jun 05 21:49:00 2026 +0900"
  },
  "message": "t: let prove fail when parsing invalid TAP output\n\nTo make the result of our tests accessible we use the TAP protocol. This\nprotocol is parsed by either prove or by Meson. Unfortunately, these two\ntools differ when it comes to their strictness when parsing the\nprotocol:\n\n  - Prove by default happily accepts lines not specified by the\n    protocol.\n\n  - Meson will also accept such lines, but prints a big and ugly warning\n    message.\n\nWe have fixed our test suite in the past to not print invalid TAP lines\nanymore via b1dc2e796e (Merge branch \u0027ps/meson-tap-parse\u0027, 2025-06-17).\nBut as none of our tools perform a strict check it\u0027s still possible for\nbroken tests to sneak back in, like for example in 362f69547f (Merge\nbranch \u0027ps/t1006-tap-fix\u0027, 2025-07-16). This doesn\u0027t hurt at all when\nusing prove, but it\u0027s quite annoying when using Meson due to the\ngenerated warnings.\n\nUnfortunately, there doesn\u0027t seem to be a portable way to make all tools\ncomplain about violations of the TAP format. The TAP 14 specification\nhas added pragmas to the protocol that would allow us to say `pragma\n+strict`, and the effect of that would be to treat invalid TAP lines as\na test failure. But the release of TAP 14 is still rather recent, and\nTest-Harness for example only gained support for it in version 3.48,\nwhich was released in 2023.\n\nIn fact though, this pragma was already introduced as an inofficial\nextension of the TAP protocol with Test-Harness 3.10, released in 2008.\nSo while not all tools understand the pragma, at least prove does for a\nlong time.\n\nUnconditionally enable the pragma when using prove so that we\u0027ll detect\ntests that emit broken TAP output right away. This would have detected\nthe issues fixed in preceding commits:\n\n    $ prove t7527-builtin-fsmonitor.sh\n    t7527-builtin-fsmonitor.sh .. All 69 subtests passed\n            (less 6 skipped subtests: 63 okay)\n\n    Test Summary Report\n    -------------------\n    t7527-builtin-fsmonitor.sh (Wstat: 0 Tests: 69 Failed: 0)\n      Parse errors: Unknown TAP token: \"Initialized empty Git repository in /tmp/git/test_fsmonitor_smoke/.git/\"\n\nSigned-off-by: Patrick Steinhardt \u003cps@pks.im\u003e\nSigned-off-by: Junio C Hamano \u003cgitster@pobox.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d1d24c4124fd1d08df53652ae53d4f1a73663ef3",
      "old_mode": 33188,
      "old_path": "t/test-lib.sh",
      "new_id": "ceefb99bff60e046f2363fcbbc65df87284f1422",
      "new_mode": 33188,
      "new_path": "t/test-lib.sh"
    }
  ]
}
