Merge branch 'jk/cocci-batch'
[gitweb.git] / t / t7502-commit-porcelain.sh
index ca4a740da0258b5522f29051c3d18632d1bafa1b..5733d9cd3462a2448b3bb748e62dfe8452f9a733 100755 (executable)
@@ -16,7 +16,8 @@ commit_msg_is () {
 # Arguments: [<prefix] [<commit message>] [<commit options>]
 check_summary_oneline() {
        test_tick &&
-       git commit ${3+"$3"} -m "$2" | head -1 > act &&
+       git commit ${3+"$3"} -m "$2" >raw &&
+       head -n 1 raw >act &&
 
        # branch name
        SUMMARY_PREFIX="$(git name-rev --name-only HEAD)" &&
@@ -68,7 +69,7 @@ test_expect_success 'output summary format for merges' '
        git checkout recursive-a &&
        test_must_fail git merge recursive-b &&
        # resolve the conflict
-       echo commit-a > file1 &&
+       echo commit-a >file1 &&
        git add file1 &&
        check_summary_oneline "" "Merge"
 '
@@ -142,9 +143,11 @@ test_expect_success 'sign off' '
        >positive &&
        git add positive &&
        git commit -s -m "thank you" &&
-       actual=$(git cat-file commit HEAD | sed -ne "s/Signed-off-by: //p") &&
-       expected=$(git var GIT_COMMITTER_IDENT | sed -e "s/>.*/>/") &&
-       test "z$actual" = "z$expected"
+       git cat-file commit HEAD >commit.msg &&
+       sed -ne "s/Signed-off-by: //p" commit.msg >actual &&
+       git var GIT_COMMITTER_IDENT >ident &&
+       sed -e "s/>.*/>/" ident >expected &&
+       test_cmp expected actual
 
 '
 
@@ -153,8 +156,8 @@ test_expect_success 'multiple -m' '
        >negative &&
        git add negative &&
        git commit -m "one" -m "two" -m "three" &&
-       actual=$(git cat-file commit HEAD | sed -e "1,/^\$/d") &&
-       expected=$(echo one; echo; echo two; echo; echo three) &&
+       actual=$(git cat-file commit HEAD >tmp && sed -e "1,/^\$/d" tmp && rm tmp) &&
+       expected=$(test_write_lines "one" "" "two" "" "three") &&
        test "z$actual" = "z$expected"
 
 '
@@ -163,7 +166,8 @@ test_expect_success 'verbose' '
 
        echo minus >negative &&
        git add negative &&
-       git status -v | sed -ne "/^diff --git /p" >actual &&
+       git status -v >raw &&
+       sed -ne "/^diff --git /p" raw >actual &&
        echo "diff --git a/negative b/negative" >expect &&
        test_cmp expect actual
 
@@ -189,7 +193,8 @@ test_expect_success 'cleanup commit messages (verbatim option,-t)' '
 
        echo >>negative &&
        git commit --cleanup=verbatim --no-status -t expect -a &&
-       git cat-file -p HEAD |sed -e "1,/^\$/d" >actual &&
+       git cat-file -p HEAD >raw &&
+       sed -e "1,/^\$/d" raw >actual &&
        test_cmp expect actual
 
 '
@@ -198,7 +203,8 @@ test_expect_success 'cleanup commit messages (verbatim option,-F)' '
 
        echo >>negative &&
        git commit --cleanup=verbatim -F expect -a &&
-       git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
+       git cat-file -p HEAD >raw &&
+       sed -e "1,/^\$/d" raw >actual &&
        test_cmp expect actual
 
 '
@@ -207,7 +213,8 @@ test_expect_success 'cleanup commit messages (verbatim option,-m)' '
 
        echo >>negative &&
        git commit --cleanup=verbatim -m "$mesg_with_comment_and_newlines" -a &&
-       git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
+       git cat-file -p HEAD >raw &&
+       sed -e "1,/^\$/d" raw >actual &&
        test_cmp expect actual
 
 '
@@ -215,10 +222,11 @@ test_expect_success 'cleanup commit messages (verbatim option,-m)' '
 test_expect_success 'cleanup commit messages (whitespace option,-F)' '
 
        echo >>negative &&
-       { echo;echo "# text";echo; } >text &&
+       test_write_lines "" "# text" "" >text &&
        echo "# text" >expect &&
        git commit --cleanup=whitespace -F text -a &&
-       git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
+       git cat-file -p HEAD >raw &&
+       sed -e "1,/^\$/d" raw >actual &&
        test_cmp expect actual
 
 '
@@ -226,48 +234,51 @@ test_expect_success 'cleanup commit messages (whitespace option,-F)' '
 test_expect_success 'cleanup commit messages (scissors option,-F,-e)' '
 
        echo >>negative &&
-       cat >text <<EOF &&
+       cat >text <<-\EOF &&
 
-# to be kept
+       # to be kept
 
-  # ------------------------ >8 ------------------------
-# to be kept, too
-# ------------------------ >8 ------------------------
-to be removed
-# ------------------------ >8 ------------------------
-to be removed, too
-EOF
+         # ------------------------ >8 ------------------------
+       # to be kept, too
+       # ------------------------ >8 ------------------------
+       to be removed
+       # ------------------------ >8 ------------------------
+       to be removed, too
+       EOF
 
-       cat >expect <<EOF &&
-# to be kept
+       cat >expect <<-\EOF &&
+       # to be kept
 
-  # ------------------------ >8 ------------------------
-# to be kept, too
-EOF
+         # ------------------------ >8 ------------------------
+       # to be kept, too
+       EOF
        git commit --cleanup=scissors -e -F text -a &&
-       git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
+       git cat-file -p HEAD >raw &&
+       sed -e "1,/^\$/d" raw >actual &&
        test_cmp expect actual
 '
 
 test_expect_success 'cleanup commit messages (scissors option,-F,-e, scissors on first line)' '
 
        echo >>negative &&
-       cat >text <<EOF &&
-# ------------------------ >8 ------------------------
-to be removed
-EOF
+       cat >text <<-\EOF &&
+       # ------------------------ >8 ------------------------
+       to be removed
+       EOF
        git commit --cleanup=scissors -e -F text -a --allow-empty-message &&
-       git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
+       git cat-file -p HEAD >raw &&
+       sed -e "1,/^\$/d" raw >actual &&
        test_must_be_empty actual
 '
 
 test_expect_success 'cleanup commit messages (strip option,-F)' '
 
        echo >>negative &&
-       { echo;echo "# text";echo sample;echo; } >text &&
+       test_write_lines "" "# text" "sample" "" >text &&
        echo sample >expect &&
        git commit --cleanup=strip -F text -a &&
-       git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
+       git cat-file -p HEAD >raw &&
+       sed -e "1,/^\$/d" raw >actual &&
        test_cmp expect actual
 
 '
@@ -275,7 +286,7 @@ test_expect_success 'cleanup commit messages (strip option,-F)' '
 test_expect_success 'cleanup commit messages (strip option,-F,-e)' '
 
        echo >>negative &&
-       { echo;echo sample;echo; } >text &&
+       test_write_lines "" "sample" "" >text &&
        git commit -e -F text -a &&
        head -n 4 .git/COMMIT_EDITMSG >actual
 '
@@ -387,7 +398,7 @@ test_expect_success AUTOIDENT 'message shows committer when it is automatic' '
 '
 
 write_script .git/FAKE_EDITOR <<EOF
-echo editor started > "$(pwd)/.git/result"
+echo editor started >"$(pwd)/.git/result"
 exit 0
 EOF
 
@@ -455,7 +466,7 @@ EOF
 test_expect_success EXECKEEPSPID 'a SIGTERM should break locks' '
        echo >>negative &&
        ! "$SHELL_PATH" -c '\''
-         echo kill -TERM $$ >> .git/FAKE_EDITOR
+         echo kill -TERM $$ >>.git/FAKE_EDITOR
          GIT_EDITOR=.git/FAKE_EDITOR
          export GIT_EDITOR
          exec git commit -a'\'' &&
@@ -471,7 +482,8 @@ test_expect_success 'Hand committing of a redundant merge removes dups' '
        test_must_fail git merge second master &&
        git checkout master g &&
        EDITOR=: git commit -a &&
-       git cat-file commit HEAD | sed -n -e "s/^parent //p" -e "/^$/q" >actual &&
+       git cat-file commit HEAD >raw &&
+       sed -n -e "s/^parent //p" -e "/^$/q" raw >actual &&
        test_cmp expect actual
 
 '
@@ -480,7 +492,8 @@ test_expect_success 'A single-liner subject with a token plus colon is not a foo
 
        git reset --hard &&
        git commit -s -m "hello: kitty" --allow-empty &&
-       git cat-file commit HEAD | sed -e "1,/^$/d" >actual &&
+       git cat-file commit HEAD >raw &&
+       sed -e "1,/^$/d" raw >actual &&
        test_line_count = 3 actual
 
 '