From ef4a733c083a04fe849bb45e3172f601517258ce Mon Sep 17 00:00:00 2001 From: Pat Thoyts Date: Mon, 2 Sep 2013 15:44:54 +0100 Subject: [PATCH] tests: do not pass iso8859-1 encoded parameter git commit -m with some iso8859-1 encoded stuff is doomed to fail in MinGW, because Windows don't let you pass encoded bytes to a process (CreateProcessW always takes a UTF-16LE encoded string). It is safe to pass the iso8859-1 message using a file or a pipe. Thanks-to: Karsten Blees Author: Stepan Kasal --- t/t4041-diff-submodule-option.sh | 6 ++++-- t/t4205-log-pretty-formats.sh | 2 +- t/t6006-rev-list-format.sh | 4 ++-- t/t7102-reset.sh | 8 ++++++-- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh index 1751c83307..01e1f9be77 100755 --- a/t/t4041-diff-submodule-option.sh +++ b/t/t4041-diff-submodule-option.sh @@ -23,8 +23,10 @@ add_file () { echo "$name" >"$name" && git add "$name" && test_tick && - msg_added_iso88591=$(echo "Add $name ($added $name)" | iconv -f utf-8 -t iso8859-1) && - git -c 'i18n.commitEncoding=iso8859-1' commit -m "$msg_added_iso88591" + # "git commit -m" would break MinGW, as Windows refuse to pass + # iso8859-1 encoded parameter to git. + echo "Add $name ($added $name)" | iconv -f utf-8 -t iso8859-1 | + git -c 'i18n.commitEncoding=iso8859-1' commit -F - done >/dev/null && git rev-parse --short --verify HEAD ) diff --git a/t/t4205-log-pretty-formats.sh b/t/t4205-log-pretty-formats.sh index 2a6278bb33..9d3f92456a 100755 --- a/t/t4205-log-pretty-formats.sh +++ b/t/t4205-log-pretty-formats.sh @@ -28,7 +28,7 @@ test_expect_success 'set up basic repos' ' git add foo && test_tick && git config i18n.commitEncoding iso8859-1 && - git commit -m "$(commit_msg iso8859-1)" && + commit_msg iso8859-1 | git commit -F - && git add bar && test_tick && git commit -m "add bar" && diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh index 98744038ec..8d27ff2180 100755 --- a/t/t6006-rev-list-format.sh +++ b/t/t6006-rev-list-format.sh @@ -22,13 +22,13 @@ test_expect_success 'setup' ' : >foo && git add foo && git config i18n.commitEncoding iso8859-1 && - git commit -m "$added_iso88591" && + echo "$added_iso88591" | git commit -F - && head1=$(git rev-parse --verify HEAD) && head1_short=$(git rev-parse --verify --short $head1) && tree1=$(git rev-parse --verify HEAD:) && tree1_short=$(git rev-parse --verify --short $tree1) && echo "$changed" > foo && - git commit -a -m "$changed_iso88591" && + echo "$changed_iso88591" | git commit -a -F - && head2=$(git rev-parse --verify HEAD) && head2_short=$(git rev-parse --verify --short $head2) && tree2=$(git rev-parse --verify HEAD:) && diff --git a/t/t7102-reset.sh b/t/t7102-reset.sh index ee117e2e72..215b12b770 100755 --- a/t/t7102-reset.sh +++ b/t/t7102-reset.sh @@ -41,7 +41,9 @@ test_expect_success 'creating initial files and commits' ' echo "1st line 2nd file" >secondfile && echo "2nd line 2nd file" >>secondfile && - git -c "i18n.commitEncoding=iso8859-1" commit -a -m "$(commit_msg iso8859-1)" && + # "git commit -m" would break MinGW, as Windows refuse to pass + # iso8859-1 encoded parameter to git. + commit_msg iso8859-1 | git -c "i18n.commitEncoding=iso8859-1" commit -a -F - && head5=$(git rev-parse --verify HEAD) ' # git log --pretty=oneline # to see those SHA1 involved @@ -331,7 +333,9 @@ test_expect_success 'redoing the last two commits should succeed' ' echo "1st line 2nd file" >secondfile && echo "2nd line 2nd file" >>secondfile && - git -c "i18n.commitEncoding=iso8859-1" commit -a -m "$(commit_msg iso8859-1)" && + # "git commit -m" would break MinGW, as Windows refuse to pass + # iso8859-1 encoded parameter to git. + commit_msg iso8859-1 | git -c "i18n.commitEncoding=iso8859-1" commit -a -F - && check_changes $head5 '