]> granicus.if.org Git - git/commitdiff
t: use test_write_lines() instead of series of 'echo' commands
authorEric Sunshine <sunshine@sunshineco.com>
Mon, 2 Jul 2018 00:23:42 +0000 (20:23 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 3 Jul 2018 19:38:04 +0000 (12:38 -0700)
These tests employ a noisy subshell (with missing &&-chain) to feed
input into Git commands or files:

    (echo a; echo b; echo c) | git some-command ...

Simplify by taking advantage of test_write_lines():

    test_write_lines a b c | git some-command ...

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t0090-cache-tree.sh
t/t1008-read-tree-overlay.sh
t/t2016-checkout-patch.sh
t/t3404-rebase-interactive.sh
t/t3701-add-interactive.sh
t/t3904-stash-patch.sh
t/t7105-reset-patch.sh
t/t7301-clean-interactive.sh
t/t7501-commit.sh
t/t7610-mergetool.sh

index 0c61268fd22ade66c6cbd91ad743986b33af0d5d..28ea93f509c0a9a932897e45316be9f188ad4259 100755 (executable)
@@ -156,7 +156,7 @@ test_expect_success PERL 'commit --interactive gives cache-tree on partial commi
                return 44;
        }
        EOT
-       (echo p; echo 1; echo; echo s; echo n; echo y; echo q) |
+       test_write_lines p 1 "" s n y q |
        git commit --interactive -m foo &&
        test_cache_tree
 '
index 4c50ed955eb18da1a60dd9d635f3c32d081cfb76..cf96016844822cfec9998f107baebf15cb4c70db 100755 (executable)
@@ -23,7 +23,7 @@ test_expect_success setup '
 
 test_expect_success 'multi-read' '
        read_tree_must_succeed initial master side &&
-       (echo a; echo b/c) >expect &&
+       test_write_lines a b/c >expect &&
        git ls-files >actual &&
        test_cmp expect actual
 '
index 9cd0ac4ba3f14dc85b35fa14e20ceb16f191f724..47aeb0b1674c01fd35e3aef759756348026a04bb 100755 (executable)
@@ -20,33 +20,33 @@ test_expect_success PERL 'setup' '
 
 test_expect_success PERL 'saying "n" does nothing' '
        set_and_save_state dir/foo work head &&
-       (echo n; echo n) | git checkout -p &&
+       test_write_lines n n | git checkout -p &&
        verify_saved_state bar &&
        verify_saved_state dir/foo
 '
 
 test_expect_success PERL 'git checkout -p' '
-       (echo n; echo y) | git checkout -p &&
+       test_write_lines n y | git checkout -p &&
        verify_saved_state bar &&
        verify_state dir/foo head head
 '
 
 test_expect_success PERL 'git checkout -p with staged changes' '
        set_state dir/foo work index &&
-       (echo n; echo y) | git checkout -p &&
+       test_write_lines n y | git checkout -p &&
        verify_saved_state bar &&
        verify_state dir/foo index index
 '
 
 test_expect_success PERL 'git checkout -p HEAD with NO staged changes: abort' '
        set_and_save_state dir/foo work head &&
-       (echo n; echo y; echo n) | git checkout -p HEAD &&
+       test_write_lines n y n | git checkout -p HEAD &&
        verify_saved_state bar &&
        verify_saved_state dir/foo
 '
 
 test_expect_success PERL 'git checkout -p HEAD with NO staged changes: apply' '
-       (echo n; echo y; echo y) | git checkout -p HEAD &&
+       test_write_lines n y y | git checkout -p HEAD &&
        verify_saved_state bar &&
        verify_state dir/foo head head
 '
@@ -54,14 +54,14 @@ test_expect_success PERL 'git checkout -p HEAD with NO staged changes: apply' '
 test_expect_success PERL 'git checkout -p HEAD with change already staged' '
        set_state dir/foo index index &&
        # the third n is to get out in case it mistakenly does not apply
-       (echo n; echo y; echo n) | git checkout -p HEAD &&
+       test_write_lines n y n | git checkout -p HEAD &&
        verify_saved_state bar &&
        verify_state dir/foo head head
 '
 
 test_expect_success PERL 'git checkout -p HEAD^' '
        # the third n is to get out in case it mistakenly does not apply
-       (echo n; echo y; echo n) | git checkout -p HEAD^ &&
+       test_write_lines n y n | git checkout -p HEAD^ &&
        verify_saved_state bar &&
        verify_state dir/foo parent parent
 '
@@ -69,7 +69,7 @@ test_expect_success PERL 'git checkout -p HEAD^' '
 test_expect_success PERL 'git checkout -p handles deletion' '
        set_state dir/foo work index &&
        rm dir/foo &&
-       (echo n; echo y) | git checkout -p &&
+       test_write_lines n y | git checkout -p &&
        verify_saved_state bar &&
        verify_state dir/foo index index
 '
@@ -81,21 +81,21 @@ test_expect_success PERL 'git checkout -p handles deletion' '
 
 test_expect_success PERL 'path limiting works: dir' '
        set_state dir/foo work head &&
-       (echo y; echo n) | git checkout -p dir &&
+       test_write_lines y n | git checkout -p dir &&
        verify_saved_state bar &&
        verify_state dir/foo head head
 '
 
 test_expect_success PERL 'path limiting works: -- dir' '
        set_state dir/foo work head &&
-       (echo y; echo n) | git checkout -p -- dir &&
+       test_write_lines y n | git checkout -p -- dir &&
        verify_saved_state bar &&
        verify_state dir/foo head head
 '
 
 test_expect_success PERL 'path limiting works: HEAD^ -- dir' '
        # the third n is to get out in case it mistakenly does not apply
-       (echo y; echo n; echo n) | git checkout -p HEAD^ -- dir &&
+       test_write_lines y n n | git checkout -p HEAD^ -- dir &&
        verify_saved_state bar &&
        verify_state dir/foo parent parent
 '
@@ -103,7 +103,7 @@ test_expect_success PERL 'path limiting works: HEAD^ -- dir' '
 test_expect_success PERL 'path limiting works: foo inside dir' '
        set_state dir/foo work head &&
        # the third n is to get out in case it mistakenly does not apply
-       (echo y; echo n; echo n) | (cd dir && git checkout -p foo) &&
+       test_write_lines y n n | (cd dir && git checkout -p foo) &&
        verify_saved_state bar &&
        verify_state dir/foo head head
 '
index 352a52e59d1a25d6fe50c5001ba3c84e2fc4a30c..85e99aac1342b4b6a7b0458354f6b721ce7f1b6c 100755 (executable)
@@ -509,7 +509,7 @@ test_expect_success 'interrupted squash works as expected' '
        one=$(git rev-parse HEAD~3) &&
        set_fake_editor &&
        test_must_fail env FAKE_LINES="1 squash 3 2" git rebase -i HEAD~3 &&
-       (echo one; echo two; echo four) > conflict &&
+       test_write_lines one two four > conflict &&
        git add conflict &&
        test_must_fail git rebase --continue &&
        echo resolved > conflict &&
@@ -523,10 +523,10 @@ test_expect_success 'interrupted squash works as expected (case 2)' '
        one=$(git rev-parse HEAD~3) &&
        set_fake_editor &&
        test_must_fail env FAKE_LINES="3 squash 1 2" git rebase -i HEAD~3 &&
-       (echo one; echo four) > conflict &&
+       test_write_lines one four > conflict &&
        git add conflict &&
        test_must_fail git rebase --continue &&
-       (echo one; echo two; echo four) > conflict &&
+       test_write_lines one two four > conflict &&
        git add conflict &&
        test_must_fail git rebase --continue &&
        echo resolved > conflict &&
index 3e9139dca88e83165fc21e6dce06f3243bd49cd7..609fbfdc317137e420fab48e394f0095b0a1df69 100755 (executable)
@@ -46,13 +46,13 @@ test_expect_success 'setup expected' '
 '
 
 test_expect_success 'diff works (initial)' '
-       (echo d; echo 1) | git add -i >output &&
+       test_write_lines d 1 | git add -i >output &&
        sed -ne "/new file/,/content/p" <output >diff &&
        diff_cmp expected diff
 '
 test_expect_success 'revert works (initial)' '
        git add file &&
-       (echo r; echo 1) | git add -i &&
+       test_write_lines r 1 | git add -i &&
        git ls-files >output &&
        ! grep . output
 '
@@ -83,13 +83,13 @@ test_expect_success 'setup expected' '
 '
 
 test_expect_success 'diff works (commit)' '
-       (echo d; echo 1) | git add -i >output &&
+       test_write_lines d 1 | git add -i >output &&
        sed -ne "/^index/,/content/p" <output >diff &&
        diff_cmp expected diff
 '
 test_expect_success 'revert works (commit)' '
        git add file &&
-       (echo r; echo 1) | git add -i &&
+       test_write_lines r 1 | git add -i &&
        git add -i </dev/null >output &&
        grep "unchanged *+3/-0 file" output
 '
@@ -102,7 +102,7 @@ test_expect_success 'setup expected' '
 
 test_expect_success 'dummy edit works' '
        test_set_editor : &&
-       (echo e; echo a) | git add -p &&
+       test_write_lines e a | git add -p &&
        git diff > diff &&
        diff_cmp expected diff
 '
@@ -127,7 +127,7 @@ test_expect_success 'setup fake editor' '
 
 test_expect_success 'bad edit rejected' '
        git reset &&
-       (echo e; echo n; echo d) | git add -p >output &&
+       test_write_lines e n d | git add -p >output &&
        grep "hunk does not apply" output
 '
 
@@ -140,7 +140,7 @@ test_expect_success 'setup patch' '
 
 test_expect_success 'garbage edit rejected' '
        git reset &&
-       (echo e; echo n; echo d) | git add -p >output &&
+       test_write_lines e n d | git add -p >output &&
        grep "hunk does not apply" output
 '
 
@@ -170,7 +170,7 @@ test_expect_success 'setup expected' '
 '
 
 test_expect_success 'real edit works' '
-       (echo e; echo n; echo d) | git add -p &&
+       test_write_lines e n d | git add -p &&
        git diff >output &&
        diff_cmp expected output
 '
index 83744f8c930637560d7d97123a2ffbd38030637e..9546b6f8a4e2fdf0c25f3b463de45a0feae4695c 100755 (executable)
@@ -29,14 +29,14 @@ test_expect_success 'setup' '
 test_expect_success 'saying "n" does nothing' '
        set_state HEAD HEADfile_work HEADfile_index &&
        set_state dir/foo work index &&
-       (echo n; echo n; echo n) | test_must_fail git stash save -p &&
+       test_write_lines n n n | test_must_fail git stash save -p &&
        verify_state HEAD HEADfile_work HEADfile_index &&
        verify_saved_state bar &&
        verify_state dir/foo work index
 '
 
 test_expect_success 'git stash -p' '
-       (echo y; echo n; echo y) | git stash save -p &&
+       test_write_lines y n y | git stash save -p &&
        verify_state HEAD committed HEADfile_index &&
        verify_saved_state bar &&
        verify_state dir/foo head index &&
@@ -51,7 +51,7 @@ test_expect_success 'git stash -p --no-keep-index' '
        set_state HEAD HEADfile_work HEADfile_index &&
        set_state bar bar_work bar_index &&
        set_state dir/foo work index &&
-       (echo y; echo n; echo y) | git stash save -p --no-keep-index &&
+       test_write_lines y n y | git stash save -p --no-keep-index &&
        verify_state HEAD committed committed &&
        verify_state bar bar_work dummy &&
        verify_state dir/foo head head &&
@@ -66,7 +66,7 @@ test_expect_success 'git stash --no-keep-index -p' '
        set_state HEAD HEADfile_work HEADfile_index &&
        set_state bar bar_work bar_index &&
        set_state dir/foo work index &&
-       (echo y; echo n; echo y) | git stash save --no-keep-index -p &&
+       test_write_lines y n y | git stash save --no-keep-index -p &&
        verify_state HEAD committed committed &&
        verify_state dir/foo head head &&
        verify_state bar bar_work dummy &&
index 98b7d7b969e4eb3ded40aba1f12d2afc8bad849a..bd10a96727c573bdd53b53079943990d232431c3 100755 (executable)
@@ -19,20 +19,20 @@ test_expect_success PERL 'setup' '
 
 test_expect_success PERL 'saying "n" does nothing' '
        set_and_save_state dir/foo work work &&
-       (echo n; echo n) | git reset -p &&
+       test_write_lines n n | git reset -p &&
        verify_saved_state dir/foo &&
        verify_saved_state bar
 '
 
 test_expect_success PERL 'git reset -p' '
-       (echo n; echo y) | git reset -p >output &&
+       test_write_lines n y | git reset -p >output &&
        verify_state dir/foo work head &&
        verify_saved_state bar &&
        test_i18ngrep "Unstage" output
 '
 
 test_expect_success PERL 'git reset -p HEAD^' '
-       (echo n; echo y) | git reset -p HEAD^ >output &&
+       test_write_lines n y | git reset -p HEAD^ >output &&
        verify_state dir/foo work parent &&
        verify_saved_state bar &&
        test_i18ngrep "Apply" output
@@ -45,20 +45,20 @@ test_expect_success PERL 'git reset -p HEAD^' '
 
 test_expect_success PERL 'git reset -p dir' '
        set_state dir/foo work work &&
-       (echo y; echo n) | git reset -p dir &&
+       test_write_lines y n | git reset -p dir &&
        verify_state dir/foo work head &&
        verify_saved_state bar
 '
 
 test_expect_success PERL 'git reset -p -- foo (inside dir)' '
        set_state dir/foo work work &&
-       (echo y; echo n) | (cd dir && git reset -p -- foo) &&
+       test_write_lines y n | (cd dir && git reset -p -- foo) &&
        verify_state dir/foo work head &&
        verify_saved_state bar
 '
 
 test_expect_success PERL 'git reset -p HEAD^ -- dir' '
-       (echo y; echo n) | git reset -p HEAD^ -- dir &&
+       test_write_lines y n | git reset -p HEAD^ -- dir &&
        verify_state dir/foo work parent &&
        verify_saved_state bar
 '
index 1bf9789c8a3cfbb1cc8a6ea33e4a0b1a0da0a7cd..a07e8b86de2014fd24bcb4692a744f147ef07787 100755 (executable)
@@ -107,7 +107,7 @@ test_expect_success 'git clean -id (filter all)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo f; echo "*"; echo; echo c) | \
+       test_write_lines f "*" "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -129,7 +129,7 @@ test_expect_success 'git clean -id (filter patterns)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo f; echo "part3.* *.out"; echo; echo c) | \
+       test_write_lines f "part3.* *.out" "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -151,7 +151,7 @@ test_expect_success 'git clean -id (filter patterns 2)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo f; echo "* !*.out"; echo; echo c) | \
+       test_write_lines f "* !*.out" "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -173,7 +173,7 @@ test_expect_success 'git clean -id (select - all)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo s; echo "*"; echo; echo c) | \
+       test_write_lines s "*" "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -195,7 +195,7 @@ test_expect_success 'git clean -id (select - none)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo s; echo; echo c) | \
+       test_write_lines s "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -217,7 +217,7 @@ test_expect_success 'git clean -id (select - number)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo s; echo 3; echo; echo c) | \
+       test_write_lines s 3 "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -239,7 +239,7 @@ test_expect_success 'git clean -id (select - number 2)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo s; echo 2 3; echo 5; echo; echo c) | \
+       test_write_lines s "2 3" 5 "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -261,7 +261,7 @@ test_expect_success 'git clean -id (select - number 3)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo s; echo 3,4 5; echo; echo c) | \
+       test_write_lines s "3,4 5" "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -282,7 +282,7 @@ test_expect_success 'git clean -id (select - filenames)' '
 
        mkdir -p build docs &&
        touch a.out foo.txt bar.txt baz.txt &&
-       (echo s; echo a.out fo ba bar; echo; echo c) | \
+       test_write_lines s "a.out fo ba bar" "" c |
        git clean -id &&
        test -f Makefile &&
        test ! -f a.out &&
@@ -298,7 +298,7 @@ test_expect_success 'git clean -id (select - range)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo s; echo 1,3-4; echo 2; echo; echo c) | \
+       test_write_lines s "1,3-4" 2 "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -320,7 +320,7 @@ test_expect_success 'git clean -id (select - range 2)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo s; echo 4- 1; echo; echo c) | \
+       test_write_lines s "4- 1" "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -342,7 +342,7 @@ test_expect_success 'git clean -id (inverse select)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo s; echo "*"; echo -5- 1 -2; echo; echo c) | \
+       test_write_lines s "*" "-5- 1 -2" "" c |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -364,7 +364,7 @@ test_expect_success 'git clean -id (ask)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo a; echo Y; echo y; echo no; echo yes; echo bad; echo) | \
+       test_write_lines a Y y no yes bad "" |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -386,7 +386,7 @@ test_expect_success 'git clean -id (ask - Ctrl+D)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (echo a; echo Y; echo no; echo yes; echo "\04") | \
+       test_write_lines a Y no yes "\04" |
        git clean -id &&
        test -f Makefile &&
        test -f README &&
@@ -408,8 +408,8 @@ test_expect_success 'git clean -id with prefix and path (filter)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (cd build/ && \
-        (echo f; echo "docs"; echo "*.h"; echo ; echo c) | \
+       (cd build/ &&
+        test_write_lines f docs "*.h" "" c |
         git clean -id ..) &&
        test -f Makefile &&
        test -f README &&
@@ -431,9 +431,8 @@ test_expect_success 'git clean -id with prefix and path (select by name)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (cd build/ && \
-        (echo s; echo "../docs/"; echo "../src/part3.c"; \
-         echo "../src/part4.c";  echo; echo c) | \
+       (cd build/ &&
+        test_write_lines s ../docs/ ../src/part3.c ../src/part4.c "" c |
         git clean -id ..) &&
        test -f Makefile &&
        test -f README &&
@@ -455,8 +454,8 @@ test_expect_success 'git clean -id with prefix and path (ask)' '
        mkdir -p build docs &&
        touch a.out src/part3.c src/part3.h src/part4.c src/part4.h \
        docs/manual.txt obj.o build/lib.so &&
-       (cd build/ && \
-        (echo a; echo Y; echo y; echo no; echo yes; echo bad; echo) | \
+       (cd build/ &&
+        test_write_lines a Y y no yes bad "" |
         git clean -id ..) &&
        test -f Makefile &&
        test -f README &&
index 9dbbd01fc07724e378a864e3fe735269665a9bc3..282ff423318902f908c926af7b6ccab041388262 100755 (executable)
@@ -47,7 +47,7 @@ test_expect_success 'paths and -a do not mix' '
 test_expect_success PERL 'can use paths with --interactive' '
        echo bong-o-bong >file &&
        # 2: update, 1:st path, that is all, 7: quit
-       ( echo 2; echo 1; echo; echo 7 ) |
+       test_write_lines 2 1 "" 7 |
        git commit -m foo --interactive file &&
        git reset --hard HEAD^
 '
@@ -293,7 +293,7 @@ test_expect_success PERL 'interactive add' '
 test_expect_success PERL "commit --interactive doesn't change index if editor aborts" '
        echo zoo >file &&
        test_must_fail git diff --exit-code >diff1 &&
-       (echo u ; echo "*" ; echo q) |
+       test_write_lines u "*" q |
        (
                EDITOR=: &&
                export EDITOR &&
index 1a430b9c40d477dd7a399c165585444818f471cf..047156e9d51141a97ad71687c6da036b5ce76548 100755 (executable)
@@ -57,18 +57,18 @@ test_expect_success 'setup' '
 
        git checkout -b delete-base branch1 &&
        mkdir -p a/a &&
-       (echo one; echo two; echo 3; echo 4) >a/a/file.txt &&
+       test_write_lines one two 3 4 >a/a/file.txt &&
        git add a/a/file.txt &&
        git commit -m"base file" &&
        git checkout -b move-to-b delete-base &&
        mkdir -p b/b &&
        git mv a/a/file.txt b/b/file.txt &&
-       (echo one; echo two; echo 4) >b/b/file.txt &&
+       test_write_lines one two 4 >b/b/file.txt &&
        git commit -a -m"move to b" &&
        git checkout -b move-to-c delete-base &&
        mkdir -p c/c &&
        git mv a/a/file.txt c/c/file.txt &&
-       (echo one; echo two; echo 3) >c/c/file.txt &&
+       test_write_lines one two 3 >c/c/file.txt &&
        git commit -a -m"move to c" &&
 
        git checkout -b stash1 master &&
@@ -349,7 +349,7 @@ test_expect_success 'mergetool keeps tempfiles when aborting delete/delete' '
        git checkout -b test$test_count move-to-c &&
        test_config mergetool.keepTemporaries true &&
        test_must_fail git merge move-to-b &&
-       ! (echo a; echo n) | git mergetool a/a/file.txt &&
+       ! test_write_lines a n | git mergetool a/a/file.txt &&
        test -d a/a &&
        cat >expect <<-\EOF &&
        file_BASE_.txt