From ba25d27e3ade01f0bb9fb4dee960caea823e81ca Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Sat, 2 Jun 2012 18:36:23 +0000 Subject: [PATCH] scm: git: skip Latin-1 path tests on Git for Windows above 1.7.10 Git for Windows (msysGit) changed internal API from ANSI to Unicode in 1.7.10. http://code.google.com/p/msysgit/issues/detail?id=80 So, Latin-1 path tests fail on Japanese Windows git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9750 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- .../functional/repositories_git_controller_test.rb | 14 ++++++++++++++ .../lib/redmine/scm/adapters/git_adapter_test.rb | 12 ++++++++---- test/unit/repository_git_test.rb | 14 ++++++++++---- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/test/functional/repositories_git_controller_test.rb b/test/functional/repositories_git_controller_test.rb index a95a208b8..aba68b1ee 100644 --- a/test/functional/repositories_git_controller_test.rb +++ b/test/functional/repositories_git_controller_test.rb @@ -29,6 +29,16 @@ class RepositoriesGitControllerTest < ActionController::TestCase CHAR_1_HEX = "\xc3\x9c" NUM_REV = 28 + ## Ruby uses ANSI api to fork a process on Windows. + ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem + ## and these are incompatible with ASCII. + ## Git for Windows (msysGit) changed internal API from ANSI to Unicode in 1.7.10 + ## http://code.google.com/p/msysgit/issues/detail?id=80 + ## So, Latin-1 path tests fail on Japanese Windows + WINDOWS_PASS = (Redmine::Platform.mswin? && + Redmine::Scm::Adapters::GitAdapter.client_version_above?([1, 7, 10])) + WINDOWS_SKIP_STR = "TODO: This test fails in Git for Windows above 1.7.10" + ## Git, Mercurial and CVS path encodings are binary. ## Subversion supports URL encoding for path. ## Redmine Mercurial adapter and extension use URL encoding. @@ -214,6 +224,8 @@ class RepositoriesGitControllerTest < ActionController::TestCase def test_entry_show_latin_1 if @ruby19_non_utf8_pass puts_ruby19_non_utf8_pass() + elsif WINDOWS_PASS + puts WINDOWS_SKIP_STR elsif JRUBY_SKIP puts JRUBY_SKIP_STR else @@ -435,6 +447,8 @@ class RepositoriesGitControllerTest < ActionController::TestCase def test_annotate_latin_1 if @ruby19_non_utf8_pass puts_ruby19_non_utf8_pass() + elsif WINDOWS_PASS + puts WINDOWS_SKIP_STR elsif JRUBY_SKIP puts JRUBY_SKIP_STR else diff --git a/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb b/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb index c5353457e..50100d1ff 100644 --- a/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb +++ b/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb @@ -13,8 +13,12 @@ begin ## Ruby uses ANSI api to fork a process on Windows. ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem ## and these are incompatible with ASCII. - # WINDOWS_PASS = Redmine::Platform.mswin? - WINDOWS_PASS = false + ## Git for Windows (msysGit) changed internal API from ANSI to Unicode in 1.7.10 + ## http://code.google.com/p/msysgit/issues/detail?id=80 + ## So, Latin-1 path tests fail on Japanese Windows + WINDOWS_PASS = (Redmine::Platform.mswin? && + Redmine::Scm::Adapters::GitAdapter.client_version_above?([1, 7, 10])) + WINDOWS_SKIP_STR = "TODO: This test fails in Git for Windows above 1.7.10" ## Git, Mercurial and CVS path encodings are binary. ## Subversion supports URL encoding for path. @@ -391,7 +395,7 @@ begin def test_latin_1_path if WINDOWS_PASS - # + puts WINDOWS_SKIP_STR elsif JRUBY_SKIP puts JRUBY_SKIP_STR else @@ -453,7 +457,7 @@ begin def test_entries_latin_1_dir if WINDOWS_PASS - # + puts WINDOWS_SKIP_STR elsif JRUBY_SKIP puts JRUBY_SKIP_STR else diff --git a/test/unit/repository_git_test.rb b/test/unit/repository_git_test.rb index dee11ed18..d4d0e8c1a 100644 --- a/test/unit/repository_git_test.rb +++ b/test/unit/repository_git_test.rb @@ -34,8 +34,12 @@ class RepositoryGitTest < ActiveSupport::TestCase ## Ruby uses ANSI api to fork a process on Windows. ## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem ## and these are incompatible with ASCII. - # WINDOWS_PASS = Redmine::Platform.mswin? - WINDOWS_PASS = false + ## Git for Windows (msysGit) changed internal API from ANSI to Unicode in 1.7.10 + ## http://code.google.com/p/msysgit/issues/detail?id=80 + ## So, Latin-1 path tests fail on Japanese Windows + WINDOWS_PASS = (Redmine::Platform.mswin? && + Redmine::Scm::Adapters::GitAdapter.client_version_above?([1, 7, 10])) + WINDOWS_SKIP_STR = "TODO: This test fails in Git for Windows above 1.7.10" ## Git, Mercurial and CVS path encodings are binary. ## Subversion supports URL encoding for path. @@ -400,7 +404,9 @@ class RepositoryGitTest < ActiveSupport::TestCase '61b685fbe55ab05b5ac68402d5720c1a6ac973d1', ], changesets.collect(&:revision) - if JRUBY_SKIP + if WINDOWS_PASS + puts WINDOWS_SKIP_STR + elsif JRUBY_SKIP puts JRUBY_SKIP_STR else # latin-1 encoding path @@ -421,7 +427,7 @@ class RepositoryGitTest < ActiveSupport::TestCase def test_latest_changesets_latin_1_dir if WINDOWS_PASS - # + puts WINDOWS_SKIP_STR elsif JRUBY_SKIP puts JRUBY_SKIP_STR else