git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/3] tests: do not pass iso8859-1 encoded parameter

From
Stepan Kasal <kasal@ucw.cz>
Date
Jul 15, 2014, 13:43 UTC
Message-ID
<1405431797-20899-4-git-send-email-kasal@ucw.cz>
In-Reply-To
<1405431797-20899-1-git-send-email-kasal@ucw.cz>
From: Pat Thoyts <patthoyts@users.sourceforge.net>
Date: Mon, 2 Sep 2013 15:44:54 +0100

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 <blees@dcon.de>
Author: Stepan Kasal <kasal@ucw.cz>
Signed-off-by: Stepan Kasal <kasal@ucw.cz>
---
 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 463d63b..e432896 100755
--- a/t/t4041-diff-submodule-option.sh
+++ b/t/t4041-diff-submodule-option.sh
@@ -26,8 +26,10 @@ add_file () {
 			echo "$name" >"$name" &&
 			git add "$name" &&
 			test_tick &&
-			msg_added_iso88591=$(echo "Add $name ($added $name)" | iconv -f utf-8 -t $test_encoding) &&
-			git -c "i18n.commitEncoding=$test_encoding" commit -m "$msg_added_iso88591"
+			# "git commit -m" would break MinGW, as Windows refuse to pass
+			# $test_encoding encoded parameter to git.
+			echo "Add $name ($added $name)" | iconv -f utf-8 -t $test_encoding |
+			git -c "i18n.commitEncoding=$test_encoding" 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 c84ec9a..349c531 100755
--- a/t/t4205-log-pretty-formats.sh
+++ b/t/t4205-log-pretty-formats.sh
@@ -31,7 +31,7 @@ test_expect_success 'set up basic repos' '
 	git add foo &&
 	test_tick &&
 	git config i18n.commitEncoding $test_encoding &&
-	git commit -m "$(commit_msg $test_encoding)" &&
+	commit_msg $test_encoding | 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 88ed319..a02a45a 100755
--- a/t/t6006-rev-list-format.sh
+++ b/t/t6006-rev-list-format.sh
@@ -35,13 +35,13 @@ test_expect_success 'setup' '
 	: >foo &&
 	git add foo &&
 	git config i18n.commitEncoding $test_encoding &&
-	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 ee703be..98bcfe2 100755
--- a/t/t7102-reset.sh
+++ b/t/t7102-reset.sh
@@ -44,7 +44,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=$test_encoding" commit -a -m "$(commit_msg $test_encoding)" &&
+	# "git commit -m" would break MinGW, as Windows refuse to pass
+	# $test_encoding encoded parameter to git.
+	commit_msg $test_encoding | git -c "i18n.commitEncoding=$test_encoding" commit -a -F - &&
 	head5=$(git rev-parse --verify HEAD)
 '
 # git log --pretty=oneline # to see those SHA1 involved
@@ -334,7 +336,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=$test_encoding" commit -a -m "$(commit_msg $test_encoding)" &&
+	# "git commit -m" would break MinGW, as Windows refuse to pass
+	# $test_encoding encoded parameter to git.
+	commit_msg $test_encoding | git -c "i18n.commitEncoding=$test_encoding" commit -a -F - &&
 	check_changes $head5
 '
 
-- 
2.0.0.9635.g0be03cb

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Previous: Stepan KasalNext: Stepan Kasal
Message 8 of 46 in “Topic sk/mingw-unicode-spawn-args breaks tests”
  1. Johannes SixtJul 10, 2014
  2. Karsten BleesJul 11, 2014
  3. Stepan KasalJul 12, 2014
  4. Johannes SchindelinJul 15, 2014
  5. 0/3 fix test suite with mingw-unicode patchesStepan Kasal, Jul 15, 2014
  6. 1/3 Win32: Unicode file name support (except dirent)Stepan Kasal, Jul 15, 2014
  7. 2/3 Win32: Unicode file name support (dirent)Stepan Kasal, Jul 15, 2014
  8. 3/3 tests: do not pass iso8859-1 encoded parameterStepan Kasal, Jul 15, 2014
  9. Stepan KasalJul 15, 2014
  10. Junio C HamanoJul 15, 2014
  11. Karsten BleesJul 15, 2014
  12. 1/2 MinGW: fix compile error due to missing ELOOPKarsten Blees, Jul 15, 2014
  13. Jonathan NiederJul 15, 2014
  14. Karsten BleesJul 15, 2014
  15. Junio C HamanoJul 16, 2014
  16. 2/2 config: use chmod() instead of fchmod()Karsten Blees, Jul 15, 2014
  17. Johannes SixtJul 16, 2014
  18. Karsten BleesJul 16, 2014
  19. Junio C HamanoJul 16, 2014
  20. Karsten BleesJul 17, 2014
  21. Stepan KasalJul 16, 2014
  22. Thomas BraunJul 16, 2014
  23. 0/6 mingw test fixesStepan Kasal, Jul 17, 2014
  24. 1/6 MinGW: Skip test redirecting to fd 4Stepan Kasal, Jul 17, 2014
  25. Junio C HamanoJul 17, 2014
  26. Johannes SchindelinJul 17, 2014
  27. Karsten BleesJul 17, 2014
  28. Junio C HamanoJul 17, 2014
  29. 2/6 Disable t0110's high-bit test on WindowsStepan Kasal, Jul 17, 2014
  30. Karsten BleesJul 17, 2014
  31. Junio C HamanoJul 18, 2014
  32. t0110/MinGW: skip tests that pass arbitrary bytes on the command lineKarsten Blees, Jul 19, 2014
  33. Junio C HamanoJul 21, 2014
  34. 3/6 MinGW: disable legacy encoding testsStepan Kasal, Jul 17, 2014
  35. 4/6 t4210: skip command-line encoding tests on mingwStepan Kasal, Jul 17, 2014
  36. Erik Faye-LundJul 18, 2014
  37. Junio C HamanoJul 21, 2014
  38. Johannes SchindelinJul 21, 2014
  39. Johannes SixtJul 21, 2014
  40. Junio C HamanoJul 21, 2014
  41. Junio C HamanoJul 21, 2014
  42. Junio C HamanoJul 21, 2014
  43. 2/2 test prerequisites: enumerate with commasJunio C Hamano, Jul 21, 2014
  44. 5/6 t9902: mingw-specific fix for gitfile link filesStepan Kasal, Jul 17, 2014
  45. Junio C HamanoJul 17, 2014
  46. 6/6 t800[12]: work around MSys limitationStepan Kasal, Jul 17, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.