{"thread":{"id":"63901","subject":"[PATCH] t0450: fix test for out-of-tree builds","startedAt":"2025-08-04T07:30:27Z","lastAt":"2025-09-03T18:46:20Z","messageCount":12,"participants":["Toon Claes","Patrick Steinhardt","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"523383","messageId":"20250804073002.1586332-1-toon@iotcl.com","threadId":"63901","inReplyTo":null,"subject":"[PATCH] t0450: fix test for out-of-tree builds","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2025-08-04T07:30:02Z","receivedAt":"2025-08-04T07:30:27Z","isPatch":true,"sender":{"key":"toon@iotcl.com","avatar":"https://avatars.githubusercontent.com/u/121621?v=4"},"body":"When using Meson, builds are out-of-tree and $GIT_BUILD_DIR gets set to\nthe path where the build output is landing. To locate the Documentation\nsources, test 't0450' was using that path.\n\nModify test 't0450' to use `$GIT_SOURCE_DIR/Documentation` to find the\ndocumentation sources.\n\nSigned-off-by: Toon Claes <toon@iotcl.com>\n---\n t/t0450-txt-doc-vs-help.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh\nindex 2f7504ae7e..da2d0af5b0 100755\n--- a/t/t0450-txt-doc-vs-help.sh\n+++ b/t/t0450-txt-doc-vs-help.sh\n@@ -41,7 +41,7 @@ help_to_synopsis () {\n }\n \n builtin_to_adoc () {\n-       echo \"$GIT_BUILD_DIR/Documentation/git-$1.adoc\"\n+       echo \"$GIT_SOURCE_DIR/Documentation/git-$1.adoc\"\n }\n \n adoc_to_synopsis () {\n-- \n2.50.1.327.g047016eb4a\n\n"},{"id":"523387","messageId":"aJBnuOcQQ1AY6hR4@pks.im","threadId":"63901","inReplyTo":"20250804073002.1586332-1-toon@iotcl.com","subject":"Re: [PATCH] t0450: fix test for out-of-tree builds","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-08-04T07:56:40Z","receivedAt":"2025-08-04T07:56:47Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Mon, Aug 04, 2025 at 09:30:02AM +0200, Toon Claes wrote:\n> When using Meson, builds are out-of-tree and $GIT_BUILD_DIR gets set to\n> the path where the build output is landing. To locate the Documentation\n> sources, test 't0450' was using that path.\n> \n> Modify test 't0450' to use `$GIT_SOURCE_DIR/Documentation` to find the\n> documentation sources.\n> \n> Signed-off-by: Toon Claes <toon@iotcl.com>\n> ---\n>  t/t0450-txt-doc-vs-help.sh | 2 +-\n>  1 file changed, 1 insertion(+), 1 deletion(-)\n> \n> diff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh\n> index 2f7504ae7e..da2d0af5b0 100755\n> --- a/t/t0450-txt-doc-vs-help.sh\n> +++ b/t/t0450-txt-doc-vs-help.sh\n> @@ -41,7 +41,7 @@ help_to_synopsis () {\n>  }\n>  \n>  builtin_to_adoc () {\n> -       echo \"$GIT_BUILD_DIR/Documentation/git-$1.adoc\"\n> +       echo \"$GIT_SOURCE_DIR/Documentation/git-$1.adoc\"\n>  }\n\nOk, the change itself looks reasonable to me. One question that the\ncommit message doesn't answer though is why this didn't cause the test\nto fail. I think the answer is that we have the following loop:\n\n\twhile read builtin\n\tdo\n\t\t...\n\n\t\tadoc=\"$(builtin_to_adoc \"$builtin\")\" &&\n\t\tpreq=\"$(echo BUILTIN_ADOC_$builtin | tr '[:lower:]-' '[:upper:]_')\" &&\n\n\t\tif test -f \"$adoc\"\n\t\tthen\n\t\t\ttest_set_prereq \"$preq\"\n\t\tfi &&\n\n\t\t...\n\tdone <builtins\n\nSo we explicitly check wether the \".adoc\" file exists, and if it doesn't\nwe don't have its prereq. All subsequent tests then use that prereq, so\nwe skip all of those tests with Meson entirely.\n\nWhich indicates that this prereq is overly loose: ideally we should not\nskip such tests, but rather print an error that something is fishy. I\nsuspect that we have the prereq in place because there are some builtins\nthat don't have a corresponding manpage though.\n\nMaybe this is something we could explore: what breaks if we remove the\nprereq entirely? And if this breakage is limited to a small number of\nbuiltins we can maybe use an explicit skip-list like we already do with\n\"t/t0450/adoc-help-mismatches\".\n\nThanks!\n\nPatrick\n"},{"id":"523531","messageId":"8734a6ufwu.fsf@iotcl.com","threadId":"63901","inReplyTo":"aJBnuOcQQ1AY6hR4@pks.im","subject":"Re: [PATCH] t0450: fix test for out-of-tree builds","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2025-08-05T12:11:29Z","receivedAt":"2025-08-05T12:11:43Z","isPatch":true,"sender":{"key":"toon@iotcl.com","avatar":"https://avatars.githubusercontent.com/u/121621?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n> Ok, the change itself looks reasonable to me. One question that the\n> commit message doesn't answer though is why this didn't cause the test\n> to fail.\n\nAh yes, I should have pointed that out in the commit message. But as you\nsay, in short it simply skips the tests is if cannot find the .adoc.\n\n> [snip]\n\n> Which indicates that this prereq is overly loose: ideally we should not\n> skip such tests, but rather print an error that something is fishy. I\n> suspect that we have the prereq in place because there are some builtins\n> that don't have a corresponding manpage though.\n>\n> Maybe this is something we could explore: what breaks if we remove the\n> prereq entirely? And if this breakage is limited to a small number of\n> builtins we can maybe use an explicit skip-list like we already do with\n> \"t/t0450/adoc-help-mismatches\".\n\nI think that's a great change we should make on top. Being explicit\nabout which subcommands do not require documentation is better than\nsimply letting them slide through. Every new subcommand would require\ndocumentation, and if not so, adding them to a list somewhere makes it\nclear why.\n\n-- \nCheers,\nToon\n"},{"id":"523814","messageId":"20250808095943.3312265-1-toon@iotcl.com","threadId":"63901","inReplyTo":"20250804073002.1586332-1-toon@iotcl.com","subject":"[PATCH v2 0/2] Harden test t0450-txt-doc-vs-help","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2025-08-08T09:59:41Z","receivedAt":"2025-08-08T10:00:22Z","isPatch":true,"sender":{"key":"toon@iotcl.com","avatar":"https://avatars.githubusercontent.com/u/121621?v=4"},"body":"These patches add a few improvements to test t0450-txt-doc-vs-help.\n\nWhen using Meson, some test cases seem to have been skipped. This\nhappened because it was looking for .adoc files in the wrong location.\nThe first patch fixes that issue.\n\nBut, because these tests were skipped silently (when using Meson), I did\nnot notice breakage in another patch series of mine. To harden the test,\nthe second patch adds an allowlist.\n\nToon Claes (2):\n  t0450: fix test for out-of-tree builds\n  t0450: add allowlist for builtins with missing .adoc\n\n t/t0450-txt-doc-vs-help.sh | 10 ++++++++--\n 1 file changed, 8 insertions(+), 2 deletions(-)\n\nRange-diff against v1:\n1:  184290765e = 1:  cc1dd21b1c t0450: fix test for out-of-tree builds\n-:  ---------- > 2:  b8c6d88c47 t0450: add allowlist for builtins with missing .adoc\n\nbase-commit: 2c2ba49d55ff26c1082b8137b1ec5eeccb4337d1\nprerequisite-patch-id: 0000000000000000000000000000000000000000\n--\n2.50.1.327.g047016eb4a\n"},{"id":"523815","messageId":"20250808095943.3312265-2-toon@iotcl.com","threadId":"63901","inReplyTo":"20250804073002.1586332-1-toon@iotcl.com","subject":"[PATCH v2 1/2] t0450: fix test for out-of-tree builds","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2025-08-08T09:59:42Z","receivedAt":"2025-08-08T10:00:25Z","isPatch":true,"sender":{"key":"toon@iotcl.com","avatar":"https://avatars.githubusercontent.com/u/121621?v=4"},"body":"When using Meson, builds are out-of-tree and $GIT_BUILD_DIR gets set to\nthe path where the build output is landing. To locate the Documentation\nsources, test 't0450' was using that path.\n\nModify test 't0450' to use `$GIT_SOURCE_DIR/Documentation` to find the\ndocumentation sources.\n\nSigned-off-by: Toon Claes <toon@iotcl.com>\n---\n t/t0450-txt-doc-vs-help.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh\nindex 2f7504ae7e..da2d0af5b0 100755\n--- a/t/t0450-txt-doc-vs-help.sh\n+++ b/t/t0450-txt-doc-vs-help.sh\n@@ -41,7 +41,7 @@ help_to_synopsis () {\n }\n \n builtin_to_adoc () {\n-       echo \"$GIT_BUILD_DIR/Documentation/git-$1.adoc\"\n+       echo \"$GIT_SOURCE_DIR/Documentation/git-$1.adoc\"\n }\n \n adoc_to_synopsis () {\n-- \n2.50.1.327.g047016eb4a\n\n"},{"id":"523816","messageId":"20250808095943.3312265-3-toon@iotcl.com","threadId":"63901","inReplyTo":"20250804073002.1586332-1-toon@iotcl.com","subject":"[PATCH v2 2/2] t0450: add allowlist for builtins with missing .adoc","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2025-08-08T09:59:43Z","receivedAt":"2025-08-08T10:00:28Z","isPatch":true,"sender":{"key":"toon@iotcl.com","avatar":"https://avatars.githubusercontent.com/u/121621?v=4"},"body":"Before we were silently skipping all builtins that don't have a matching\n.adoc file. This is overly loose and might skip documentation files\nwhen it shouldn't, for example when there was a typo in the filename.\n\nTo ensure no new builtins are added without documentation, add an\nallowlist: t0450/adoc-missing. In this file only builtin commands that\ndo *not* have a corresponding .adoc file shall be listed. If there is a\nmismatch, fail the test. This should force future contributions to\neither add an .adoc, or add the builtin name to the allowlist file.\n\nSigned-off-by: Toon Claes <toon@iotcl.com>\n---\n t/t0450-txt-doc-vs-help.sh | 8 +++++++-\n 1 file changed, 7 insertions(+), 1 deletion(-)\n\ndiff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh\nindex da2d0af5b0..980130be78 100755\n--- a/t/t0450-txt-doc-vs-help.sh\n+++ b/t/t0450-txt-doc-vs-help.sh\n@@ -112,10 +112,16 @@ do\n \tadoc=\"$(builtin_to_adoc \"$builtin\")\" &&\n \tpreq=\"$(echo BUILTIN_ADOC_$builtin | tr '[:lower:]-' '[:upper:]_')\" &&\n \n-\tif test -f \"$adoc\"\n+\t# if and only if *.adoc is missing, builtin shall be listed in t0450/adoc-missing\n+\tresult=success\n+\tif grep -q \"^$builtin$\" \"$TEST_DIRECTORY\"/t0450/adoc-missing\n \tthen\n \t\ttest_set_prereq \"$preq\"\n+\t\tresult=failure\n \tfi &&\n+\ttest_expect_$result \"$builtin appropriately marked as having missing .adoc\" '\n+\t\ttest -f \"$adoc\"\n+\t'\n \n \t# *.adoc output assertions\n \ttest_expect_success \"$preq\" \"$builtin *.adoc SYNOPSIS has dashed labels\" '\n-- \n2.50.1.327.g047016eb4a\n\n"},{"id":"523847","messageId":"xmqq7bzdfoxe.fsf@gitster.g","threadId":"63901","inReplyTo":"20250808095943.3312265-3-toon@iotcl.com","subject":"Re: [PATCH v2 2/2] t0450: add allowlist for builtins with missing .adoc","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-08T22:07:09Z","receivedAt":"2025-08-08T22:07:13Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Toon Claes <toon@iotcl.com> writes:\n\n> Before we were silently skipping all builtins that don't have a matching\n> .adoc file. This is overly loose and might skip documentation files\n> when it shouldn't, for example when there was a typo in the filename.\n>\n> To ensure no new builtins are added without documentation, add an\n> allowlist: t0450/adoc-missing. In this file only builtin commands that\n> do *not* have a corresponding .adoc file shall be listed. If there is a\n> mismatch, fail the test. This should force future contributions to\n> either add an .adoc, or add the builtin name to the allowlist file.\n>\n> Signed-off-by: Toon Claes <toon@iotcl.com>\n> ---\n>  t/t0450-txt-doc-vs-help.sh | 8 +++++++-\n>  1 file changed, 7 insertions(+), 1 deletion(-)\n\nForgot to add something?\n\n>\n> diff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh\n> index da2d0af5b0..980130be78 100755\n> --- a/t/t0450-txt-doc-vs-help.sh\n> +++ b/t/t0450-txt-doc-vs-help.sh\n> @@ -112,10 +112,16 @@ do\n>  \tadoc=\"$(builtin_to_adoc \"$builtin\")\" &&\n>  \tpreq=\"$(echo BUILTIN_ADOC_$builtin | tr '[:lower:]-' '[:upper:]_')\" &&\n>  \n> -\tif test -f \"$adoc\"\n> +\t# if and only if *.adoc is missing, builtin shall be listed in t0450/adoc-missing\n> +\tresult=success\n> +\tif grep -q \"^$builtin$\" \"$TEST_DIRECTORY\"/t0450/adoc-missing\n>  \tthen\n>  \t\ttest_set_prereq \"$preq\"\n> +\t\tresult=failure\n>  \tfi &&\n> +\ttest_expect_$result \"$builtin appropriately marked as having missing .adoc\" '\n> +\t\ttest -f \"$adoc\"\n> +\t'\n>  \n>  \t# *.adoc output assertions\n>  \ttest_expect_success \"$preq\" \"$builtin *.adoc SYNOPSIS has dashed labels\" '\n"},{"id":"524034","messageId":"aJs5D2jPh8Uom96p@pks.im","threadId":"63901","inReplyTo":"xmqq7bzdfoxe.fsf@gitster.g","subject":"Re: [PATCH v2 2/2] t0450: add allowlist for builtins with missing .adoc","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2025-08-12T12:52:31Z","receivedAt":"2025-08-12T12:52:43Z","isPatch":true,"sender":{"key":"ps@pks.im","avatar":"https://avatars.githubusercontent.com/u/4056630?v=4"},"body":"On Fri, Aug 08, 2025 at 03:07:09PM -0700, Junio C Hamano wrote:\n> Toon Claes <toon@iotcl.com> writes:\n> \n> > Before we were silently skipping all builtins that don't have a matching\n> > .adoc file. This is overly loose and might skip documentation files\n> > when it shouldn't, for example when there was a typo in the filename.\n> >\n> > To ensure no new builtins are added without documentation, add an\n> > allowlist: t0450/adoc-missing. In this file only builtin commands that\n> > do *not* have a corresponding .adoc file shall be listed. If there is a\n> > mismatch, fail the test. This should force future contributions to\n> > either add an .adoc, or add the builtin name to the allowlist file.\n> >\n> > Signed-off-by: Toon Claes <toon@iotcl.com>\n> > ---\n> >  t/t0450-txt-doc-vs-help.sh | 8 +++++++-\n> >  1 file changed, 7 insertions(+), 1 deletion(-)\n> \n> Forgot to add something?\n\nIndeed. Toon is currently out of office, so I had a look at what it\ntakes. The below patch is what I ended up with -- note that I also had\nto reverse the `grep` condition to set the prereq in the else branch.\n\nLet me know whether you're fine with just squashing these changes in or\nwhether I shall send another version.\n\nThanks!\n\nPatrick\n\ndiff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh\nindex da2d0af5b0..e12e18f97f 100755\n--- a/t/t0450-txt-doc-vs-help.sh\n+++ b/t/t0450-txt-doc-vs-help.sh\n@@ -112,10 +112,19 @@ do\n \tadoc=\"$(builtin_to_adoc \"$builtin\")\" &&\n \tpreq=\"$(echo BUILTIN_ADOC_$builtin | tr '[:lower:]-' '[:upper:]_')\" &&\n \n-\tif test -f \"$adoc\"\n+\t# If and only if *.adoc is missing, builtin shall be listed in t0450/adoc-missing.\n+\tif grep -q \"^$builtin$\" \"$TEST_DIRECTORY\"/t0450/adoc-missing\n \tthen\n+\t\ttest_expect_success \"$builtin appropriately marked as not having .adoc\" '\n+\t\t\t! test -f \"$adoc\"\n+\t\t'\n+\telse\n \t\ttest_set_prereq \"$preq\"\n-\tfi &&\n+\n+\t\ttest_expect_success \"$builtin appropriately marked as having .adoc\" '\n+\t\t\ttest -f \"$adoc\"\n+\t\t'\n+\tfi\n \n \t# *.adoc output assertions\n \ttest_expect_success \"$preq\" \"$builtin *.adoc SYNOPSIS has dashed labels\" '\ndiff --git a/t/t0450/adoc-missing b/t/t0450/adoc-missing\nnew file mode 100644\nindex 0000000000..1ec9f8dcf3\n--- /dev/null\n+++ b/t/t0450/adoc-missing\n@@ -0,0 +1,9 @@\n+checkout--worker\n+merge-ours\n+merge-recursive\n+merge-recursive-ours\n+merge-recursive-theirs\n+merge-subtree\n+pickaxe\n+submodule--helper\n+upload-archive--writer\n"},{"id":"525165","messageId":"xmqq8qj3rqgn.fsf@gitster.g","threadId":"63901","inReplyTo":"aJs5D2jPh8Uom96p@pks.im","subject":"Re: [PATCH v2 2/2] t0450: add allowlist for builtins with missing .adoc","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-08-28T23:12:08Z","receivedAt":"2025-08-28T23:12:10Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Patrick Steinhardt <ps@pks.im> writes:\n\n>> > To ensure no new builtins are added without documentation, add an\n>> > allowlist: t0450/adoc-missing...\n>> > ...\n>> >  t/t0450-txt-doc-vs-help.sh | 8 +++++++-\n>> >  1 file changed, 7 insertions(+), 1 deletion(-)\n>> \n>> Forgot to add something?\n>\n> Indeed. Toon is currently out of office, so I had a look at what it\n> takes. The below patch is what I ended up with -- note that I also had\n> to reverse the `grep` condition to set the prereq in the else branch.\n>\n> Let me know whether you're fine with just squashing these changes in or\n> whether I shall send another version.\n\nI've marked this topic in the What's cooking report to be expecting\na reroll after 2.51 final gets tagged, which has now done.  If the\nfixup! sitting at the tip of the topic is good to Toon's eyes, then\nI can squash it in and mark the topic for 'next' without waiting for\na reroll.  If not, please do send in a hopefully small and final\nupdate.\n\nThanks.\n\nFrom: Patrick Steinhardt <ps@pks.im>\nDate: Tue, 12 Aug 2025 14:52:31 +0200\nSubject: [PATCH] fixup! t0450: add allowlist for builtins with missing .adoc\n\n---\n t/t0450-txt-doc-vs-help.sh | 17 ++++++++++-------\n t/t0450/adoc-missing       |  9 +++++++++\n 2 files changed, 19 insertions(+), 7 deletions(-)\n create mode 100644 t/t0450/adoc-missing\n\ndiff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh\nindex 980130be78..e12e18f97f 100755\n--- a/t/t0450-txt-doc-vs-help.sh\n+++ b/t/t0450-txt-doc-vs-help.sh\n@@ -112,16 +112,19 @@ do\n \tadoc=\"$(builtin_to_adoc \"$builtin\")\" &&\n \tpreq=\"$(echo BUILTIN_ADOC_$builtin | tr '[:lower:]-' '[:upper:]_')\" &&\n \n-\t# if and only if *.adoc is missing, builtin shall be listed in t0450/adoc-missing\n-\tresult=success\n+\t# If and only if *.adoc is missing, builtin shall be listed in t0450/adoc-missing.\n \tif grep -q \"^$builtin$\" \"$TEST_DIRECTORY\"/t0450/adoc-missing\n \tthen\n+\t\ttest_expect_success \"$builtin appropriately marked as not having .adoc\" '\n+\t\t\t! test -f \"$adoc\"\n+\t\t'\n+\telse\n \t\ttest_set_prereq \"$preq\"\n-\t\tresult=failure\n-\tfi &&\n-\ttest_expect_$result \"$builtin appropriately marked as having missing .adoc\" '\n-\t\ttest -f \"$adoc\"\n-\t'\n+\n+\t\ttest_expect_success \"$builtin appropriately marked as having .adoc\" '\n+\t\t\ttest -f \"$adoc\"\n+\t\t'\n+\tfi\n \n \t# *.adoc output assertions\n \ttest_expect_success \"$preq\" \"$builtin *.adoc SYNOPSIS has dashed labels\" '\ndiff --git a/t/t0450/adoc-missing b/t/t0450/adoc-missing\nnew file mode 100644\nindex 0000000000..1ec9f8dcf3\n--- /dev/null\n+++ b/t/t0450/adoc-missing\n@@ -0,0 +1,9 @@\n+checkout--worker\n+merge-ours\n+merge-recursive\n+merge-recursive-ours\n+merge-recursive-theirs\n+merge-subtree\n+pickaxe\n+submodule--helper\n+upload-archive--writer\n-- \n2.51.0-262-gbae8ff527a\n\n\n"},{"id":"525377","messageId":"xmqq5xe0incd.fsf@gitster.g","threadId":"63901","inReplyTo":"xmqq8qj3rqgn.fsf@gitster.g","subject":"Re: [PATCH v2 2/2] t0450: add allowlist for builtins with missing .adoc","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-09-02T20:57:54Z","receivedAt":"2025-09-02T20:57:57Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Patrick Steinhardt <ps@pks.im> writes:\n>\n>>> > To ensure no new builtins are added without documentation, add an\n>>> > allowlist: t0450/adoc-missing...\n>>> > ...\n>>> >  t/t0450-txt-doc-vs-help.sh | 8 +++++++-\n>>> >  1 file changed, 7 insertions(+), 1 deletion(-)\n>>> \n>>> Forgot to add something?\n>>\n>> Indeed. Toon is currently out of office, so I had a look at what it\n>> takes. The below patch is what I ended up with -- note that I also had\n>> to reverse the `grep` condition to set the prereq in the else branch.\n>>\n>> Let me know whether you're fine with just squashing these changes in or\n>> whether I shall send another version.\n>\n> I've marked this topic in the What's cooking report to be expecting\n> a reroll after 2.51 final gets tagged, which has now done.  If the\n> fixup! sitting at the tip of the topic is good to Toon's eyes, then\n> I can squash it in and mark the topic for 'next' without waiting for\n> a reroll.  If not, please do send in a hopefully small and final\n> update.\n>\n> Thanks.\n\nToon, did you have a chance to take a look at Patrick's update?  Can\nwe move forward by squashing it into your [2/2]?\n\nThanks.\n\n\n>\n> From: Patrick Steinhardt <ps@pks.im>\n> Date: Tue, 12 Aug 2025 14:52:31 +0200\n> Subject: [PATCH] fixup! t0450: add allowlist for builtins with missing .adoc\n>\n> ---\n>  t/t0450-txt-doc-vs-help.sh | 17 ++++++++++-------\n>  t/t0450/adoc-missing       |  9 +++++++++\n>  2 files changed, 19 insertions(+), 7 deletions(-)\n>  create mode 100644 t/t0450/adoc-missing\n>\n> diff --git a/t/t0450-txt-doc-vs-help.sh b/t/t0450-txt-doc-vs-help.sh\n> index 980130be78..e12e18f97f 100755\n> --- a/t/t0450-txt-doc-vs-help.sh\n> +++ b/t/t0450-txt-doc-vs-help.sh\n> @@ -112,16 +112,19 @@ do\n>  \tadoc=\"$(builtin_to_adoc \"$builtin\")\" &&\n>  \tpreq=\"$(echo BUILTIN_ADOC_$builtin | tr '[:lower:]-' '[:upper:]_')\" &&\n>  \n> -\t# if and only if *.adoc is missing, builtin shall be listed in t0450/adoc-missing\n> -\tresult=success\n> +\t# If and only if *.adoc is missing, builtin shall be listed in t0450/adoc-missing.\n>  \tif grep -q \"^$builtin$\" \"$TEST_DIRECTORY\"/t0450/adoc-missing\n>  \tthen\n> +\t\ttest_expect_success \"$builtin appropriately marked as not having .adoc\" '\n> +\t\t\t! test -f \"$adoc\"\n> +\t\t'\n> +\telse\n>  \t\ttest_set_prereq \"$preq\"\n> -\t\tresult=failure\n> -\tfi &&\n> -\ttest_expect_$result \"$builtin appropriately marked as having missing .adoc\" '\n> -\t\ttest -f \"$adoc\"\n> -\t'\n> +\n> +\t\ttest_expect_success \"$builtin appropriately marked as having .adoc\" '\n> +\t\t\ttest -f \"$adoc\"\n> +\t\t'\n> +\tfi\n>  \n>  \t# *.adoc output assertions\n>  \ttest_expect_success \"$preq\" \"$builtin *.adoc SYNOPSIS has dashed labels\" '\n> diff --git a/t/t0450/adoc-missing b/t/t0450/adoc-missing\n> new file mode 100644\n> index 0000000000..1ec9f8dcf3\n> --- /dev/null\n> +++ b/t/t0450/adoc-missing\n> @@ -0,0 +1,9 @@\n> +checkout--worker\n> +merge-ours\n> +merge-recursive\n> +merge-recursive-ours\n> +merge-recursive-theirs\n> +merge-subtree\n> +pickaxe\n> +submodule--helper\n> +upload-archive--writer\n"},{"id":"525419","messageId":"87bjnrg4ky.fsf@iotcl.com","threadId":"63901","inReplyTo":"xmqq5xe0incd.fsf@gitster.g","subject":"Re: [PATCH v2 2/2] t0450: add allowlist for builtins with missing .adoc","fromName":"Toon Claes","fromEmail":"toon@iotcl.com","sentAt":"2025-09-03T11:26:05Z","receivedAt":"2025-09-03T11:30:29Z","isPatch":true,"sender":{"key":"toon@iotcl.com","avatar":"https://avatars.githubusercontent.com/u/121621?v=4"},"body":"--text follows this line--\nJunio C Hamano <gitster@pobox.com> writes:\n\n> Toon, did you have a chance to take a look at Patrick's update?  Can\n> we move forward by squashing it into your [2/2]?\n\nHi Junio,\n\nYes, I've reviewed the changes, and they look good to me. I like the\ncode more than the /clever/ approach I was attempting. My code succeeded\non my machine, but it didn't on CI (sorry, I only saw that too late, I\nwas rushing into my time off).\n\nThanks both!\n\n--\nToon\n"},{"id":"525457","messageId":"xmqq1ponfk7a.fsf@gitster.g","threadId":"63901","inReplyTo":"87bjnrg4ky.fsf@iotcl.com","subject":"Re: [PATCH v2 2/2] t0450: add allowlist for builtins with missing .adoc","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-09-03T18:46:17Z","receivedAt":"2025-09-03T18:46:20Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Toon Claes <toon@iotcl.com> writes:\n\n> --text follows this line--\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>> Toon, did you have a chance to take a look at Patrick's update?  Can\n>> we move forward by squashing it into your [2/2]?\n>\n> Hi Junio,\n>\n> Yes, I've reviewed the changes, and they look good to me. I like the\n> code more than the /clever/ approach I was attempting. My code succeeded\n> on my machine, but it didn't on CI (sorry, I only saw that too late, I\n> was rushing into my time off).\n>\n> Thanks both!\n\nOK, then let me squash that into the base patch and mark the topic\nfor 'next'.\n\nThanks.\n"}]}