Thread (47 messages) 47 messages, 4 authors, 2021-12-11

Re: [PATCH 15/19] tests: simplify by dropping unnecessary `for` loops

From: Elijah Newren <hidden>
Date: 2021-12-09 16:53:07

On Wed, Dec 8, 2021 at 11:39 PM Eric Sunshine [off-list ref] wrote:
Rather than manually looping over a set of items and plugging those
items into a template string which is printed repeatedly, achieve the
same effect by taking advantage of `printf` which loops over its
arguments automatically.
I didn't know this about printf; handy.

Patch looks good.
quoted hunk ↗ jump to hunk
Signed-off-by: Eric Sunshine <redacted>
---
 t/t3005-ls-files-relative.sh      | 10 ++--------
 t/t3600-rm.sh                     |  5 +----
 t/t4025-hunk-header.sh            | 10 ++--------
 t/t4125-apply-ws-fuzz.sh          |  5 +----
 t/t6416-recursive-corner-cases.sh | 30 ++++++------------------------
 t/t7110-reset-merge.sh            |  2 +-
 t/t9400-git-cvsserver-server.sh   |  2 +-
 7 files changed, 14 insertions(+), 50 deletions(-)
diff --git a/t/t3005-ls-files-relative.sh b/t/t3005-ls-files-relative.sh
index 6ba8b589cd..fbfa210a50 100755
--- a/t/t3005-ls-files-relative.sh
+++ b/t/t3005-ls-files-relative.sh
@@ -39,10 +39,7 @@ test_expect_success 'ls-files with mixed levels' '
 test_expect_success 'ls-files -c' '
        (
                cd top/sub &&
-               for f in ../y*
-               do
-                       echo "error: pathspec $SQ$f$SQ did not match any file(s) known to git"
-               done >expect.err &&
+               printf "error: pathspec $SQ%s$SQ did not match any file(s) known to git\n" ../y* >expect.err &&
                echo "Did you forget to ${SQ}git add${SQ}?" >>expect.err &&
                ls ../x* >expect.out &&
                test_must_fail git ls-files -c --error-unmatch ../[xy]* >actual.out 2>actual.err &&
@@ -54,10 +51,7 @@ test_expect_success 'ls-files -c' '
 test_expect_success 'ls-files -o' '
        (
                cd top/sub &&
-               for f in ../x*
-               do
-                       echo "error: pathspec $SQ$f$SQ did not match any file(s) known to git"
-               done >expect.err &&
+               printf "error: pathspec $SQ%s$SQ did not match any file(s) known to git\n" ../x* >expect.err &&
                echo "Did you forget to ${SQ}git add${SQ}?" >>expect.err &&
                ls ../y* >expect.out &&
                test_must_fail git ls-files -o --error-unmatch ../[xy]* >actual.out 2>actual.err &&
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh
index ed3952eb98..e74a318ac3 100755
--- a/t/t3600-rm.sh
+++ b/t/t3600-rm.sh
@@ -274,10 +274,7 @@ test_expect_success 'Resolving by removal is not a warning-worthy event' '
        git reset -q --hard &&
        test_when_finished "rm -f .git/index.lock msg && git reset -q --hard" &&
        blob=$(echo blob | git hash-object -w --stdin) &&
-       for stage in 1 2 3
-       do
-               echo "100644 $blob $stage       blob"
-       done | git update-index --index-info &&
+       printf "100644 $blob %d\tblob\n" 1 2 3 | git update-index --index-info &&
        git rm blob >msg 2>&1 &&
        test_i18ngrep ! "needs merge" msg &&
        test_must_fail git ls-files -s --error-unmatch blob
diff --git a/t/t4025-hunk-header.sh b/t/t4025-hunk-header.sh
index 6356961de4..5397cb7d42 100755
--- a/t/t4025-hunk-header.sh
+++ b/t/t4025-hunk-header.sh
@@ -14,15 +14,9 @@ test_expect_success setup '

        (
                echo "A $NS" &&
-               for c in B C D E F G H I J K
-               do
-                       echo "  $c"
-               done &&
+               printf "  %s\n" B C D E F G H I J K &&
                echo "L  $NS" &&
-               for c in M N O P Q R S T U V
-               do
-                       echo "  $c"
-               done
+               printf "  %s\n" M N O P Q R S T U V
        ) >file &&
        git add file &&
diff --git a/t/t4125-apply-ws-fuzz.sh b/t/t4125-apply-ws-fuzz.sh
index 9671de7999..090987c89b 100755
--- a/t/t4125-apply-ws-fuzz.sh
+++ b/t/t4125-apply-ws-fuzz.sh
@@ -10,10 +10,7 @@ test_expect_success setup '
        git add file &&

        # file-0 is full of whitespace breakages
-       for l in a bb c d eeee f ggg h
-       do
-               echo "$l "
-       done >file-0 &&
+       printf "%s \n" a bb c d eeee f ggg h >file-0 &&

        # patch-0 creates a whitespace broken file
        cat file-0 >file &&
diff --git a/t/t6416-recursive-corner-cases.sh b/t/t6416-recursive-corner-cases.sh
index 84f5082366..690c8482b1 100755
--- a/t/t6416-recursive-corner-cases.sh
+++ b/t/t6416-recursive-corner-cases.sh
@@ -24,14 +24,8 @@ test_expect_success 'setup basic criss-cross + rename with no modifications' '
                cd basic-rename &&

                ten="0 1 2 3 4 5 6 7 8 9" &&
-               for i in $ten
-               do
-                       echo line $i in a sample file
-               done >one &&
-               for i in $ten
-               do
-                       echo line $i in another sample file
-               done >two &&
+               printf "line %d in a sample file\n" $ten >one &&
+               printf "line %d in another sample file\n" $ten >two &&
                git add one two &&
                test_tick && git commit -m initial &&
@@ -96,14 +90,8 @@ test_expect_success 'setup criss-cross + rename merges with basic modification'
                cd rename-modify &&

                ten="0 1 2 3 4 5 6 7 8 9" &&
-               for i in $ten
-               do
-                       echo line $i in a sample file
-               done >one &&
-               for i in $ten
-               do
-                       echo line $i in another sample file
-               done >two &&
+               printf "line %d in a sample file\n" $ten >one &&
+               printf "line %d in another sample file\n" $ten >two &&
                git add one two &&
                test_tick && git commit -m initial &&
@@ -1588,10 +1576,7 @@ test_expect_success 'setup nested conflicts' '
                cd nested_conflicts &&

                # Create some related files now
-               for i in $(test_seq 1 10)
-               do
-                       echo Random base content line $i
-               done >initial &&
+               printf "Random base content line %d\n" $(test_seq 1 10) >initial &&

                cp initial b_L1 &&
                cp initial b_R1 &&
@@ -1777,10 +1762,7 @@ test_expect_success 'setup virtual merge base with nested conflicts' '
                cd virtual_merge_base_has_nested_conflicts &&

                # Create some related files now
-               for i in $(test_seq 1 10)
-               do
-                       echo Random base content line $i
-               done >content &&
+               printf "Random base content line %d\n" $(test_seq 1 10) >content &&

                # Setup original commit
                git add content &&
diff --git a/t/t7110-reset-merge.sh b/t/t7110-reset-merge.sh
index a82a07a04a..3d62e10b53 100755
--- a/t/t7110-reset-merge.sh
+++ b/t/t7110-reset-merge.sh
@@ -8,7 +8,7 @@ test_description='Tests for "git reset" with "--merge" and "--keep" options'
 . ./test-lib.sh

 test_expect_success setup '
-    for i in 1 2 3; do echo line $i; done >file1 &&
+    printf "line %d\n" 1 2 3 >file1 &&
     cat file1 >file2 &&
     git add file1 file2 &&
     test_tick &&
diff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh
index a6a73effde..a60fe2e19f 100755
--- a/t/t9400-git-cvsserver-server.sh
+++ b/t/t9400-git-cvsserver-server.sh
@@ -591,7 +591,7 @@ test_expect_success 'cvs annotate' '
     cd cvswork &&
     GIT_CONFIG="$git_config" cvs annotate merge >../out &&
     sed -e "s/ .*//" ../out >../actual &&
-    for i in 3 1 1 1 1 1 1 1 2 4; do echo 1.$i; done >../expect &&
+    printf "1.%d\n" 3 1 1 1 1 1 1 1 2 4 >../expect &&
     test_cmp ../expect ../actual
 '

--
2.34.1.307.g9b7440fafd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help