From: Subhaditya Nath <sn03.general@gmail.com>
To: gitster@pobox.com
Cc: git@vger.kernel.org, ps@pks.im, sn03.general@gmail.com,
sunshine@sunshineco.com
Subject: [PATCH] t7422: fix extra printf argument, eliminate loops
Date: Thu, 10 Apr 2025 00:41:11 +0530 [thread overview]
Message-ID: <20250409191139.29644-2-sn03.general@gmail.com> (raw)
In-Reply-To: <20250409191139.29644-1-sn03.general@gmail.com>
The POSIX man page of printf(1) mentions -
> If the format operand contains no conversion specifications and
> argument operands are present, the results are unspecified.
In practice, this means some printf implementations throw an error
when provided with extra operands, thereby causing the test to fail
erroneously. This commit fixes that issue.
This commit also eliminates the for-loops surrounding said printf
statements in favour of the built-in functionality of printf to consume
all arguments by reusing the format operand as-often-as-necessary.
This behaviour is mentioned in the POSIX man page of printf(1) under the
section titled "EXTENDED DESCRIPTION" like so -
8. For each conversion specification that consumes an argument, the
next argument operand shall be evaluated and converted to the
appropriate type for the conversion as specified below.
9. The format operand shall be reused as often as necessary to
satisfy the argument operands. [...]
Signed-off-by: Subhaditya Nath <sn03.general@gmail.com>
---
t/t7422-submodule-output.sh | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/t/t7422-submodule-output.sh b/t/t7422-submodule-output.sh
index 023a5cbdc4..94a14f1c31 100755
--- a/t/t7422-submodule-output.sh
+++ b/t/t7422-submodule-output.sh
@@ -178,19 +178,13 @@ test_expect_success !MINGW 'git submodule status --recursive propagates SIGPIPE'
test_commit initial &&
COMMIT=$(git rev-parse HEAD) &&
- for i in $(test_seq 2000)
- do
- printf "[submodule \"sm-$i\"]\npath = recursive-submodule-path-$i\n" "$i" ||
- return 1
- done >gitmodules &&
+ printf "[submodule \"sm-%d\"]\npath = recursive-submodule-path-%d\n" \
+ $(test_seq 2000 | sed p) >gitmodules &&
BLOB=$(git hash-object -w --stdin <gitmodules) &&
printf "100644 blob $BLOB\t.gitmodules\n" >tree &&
- for i in $(test_seq 2000)
- do
- printf "160000 commit $COMMIT\trecursive-submodule-path-%d\n" "$i" ||
- return 1
- done >>tree &&
+ printf "160000 commit $COMMIT\trecursive-submodule-path-%d\n" \
+ $(test_seq 2000) >>tree &&
TREE=$(git mktree <tree) &&
COMMIT=$(git commit-tree "$TREE") &&
--
2.48.1
next prev parent reply other threads:[~2025-04-09 19:12 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-03 14:48 [PATCH] t7422: remove extraneous argument to printf Subhaditya Nath
2025-04-03 17:05 ` Eric Sunshine
2025-04-09 16:19 ` Junio C Hamano
2025-04-09 16:29 ` Subhaditya Nath
2025-04-09 16:32 ` Subhaditya Nath
2025-04-09 17:00 ` Eric Sunshine
2025-04-09 18:06 ` Junio C Hamano
2025-04-09 19:11 ` [PATCH] t7422: fix extra printf argument, eliminate loops Subhaditya Nath
2025-04-09 19:11 ` Subhaditya Nath [this message]
2025-04-10 12:39 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250409191139.29644-2-sn03.general@gmail.com \
--to=sn03.general@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ps@pks.im \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).