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@xxxxxxxxx> --- 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