Merge branch 'js/mingw-tests-2.8'
authorJunio C Hamano <gitster@pobox.com>
Thu, 24 Mar 2016 19:27:58 +0000 (12:27 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 24 Mar 2016 19:27:58 +0000 (12:27 -0700)
* js/mingw-tests-2.8:
mingw: skip some tests in t9115 due to file name issues
t1300: fix the new --show-origin tests on Windows
t1300-repo-config: make it resilient to being run via 'sh -x'
config --show-origin: report paths with forward slashes

compat/mingw.h
path.c
t/t1300-repo-config.sh
t/t9115-git-svn-dcommit-funky-renames.sh
index 8c5bf5076bfe25ce5b12235c035cff95a4900f2c..c008694639a654e6a04e541af70e90a5fa4da9e0 100644 (file)
@@ -396,6 +396,12 @@ static inline char *mingw_find_last_dir_sep(const char *path)
                        ret = (char *)path;
        return ret;
 }
+static inline void convert_slashes(char *path)
+{
+       for (; *path; path++)
+               if (*path == '\\')
+                       *path = '/';
+}
 #define find_last_dir_sep mingw_find_last_dir_sep
 int mingw_offset_1st_component(const char *path);
 #define offset_1st_component mingw_offset_1st_component
diff --git a/path.c b/path.c
index 8b7e16812927645367c4912e88d2a5f3065efb85..969b494d72dff1439150e7bb945339be07c4d475 100644 (file)
--- a/path.c
+++ b/path.c
@@ -584,6 +584,9 @@ char *expand_user_path(const char *path)
                        if (!home)
                                goto return_null;
                        strbuf_addstr(&user_path, home);
+#ifdef GIT_WINDOWS_NATIVE
+                       convert_slashes(user_path.buf);
+#endif
                } else {
                        struct passwd *pw = getpw_str(username, username_len);
                        if (!pw)
index 8867ce10f8c40cd72c9395c2b36b8b40b5e91fcf..6767da87cba9589222b033c80b605b832f708baf 100755 (executable)
@@ -699,17 +699,13 @@ test_expect_success 'invalid unit' '
        echo 1auto >expect &&
        git config aninvalid.unit >actual &&
        test_cmp expect actual &&
-       cat >expect <<-\EOF &&
-       fatal: bad numeric config value '\''1auto'\'' for '\''aninvalid.unit'\'' in file .git/config: invalid unit
-       EOF
        test_must_fail git config --int --get aninvalid.unit 2>actual &&
-       test_i18ncmp expect actual
+       test_i18ngrep "bad numeric config value .1auto. for .aninvalid.unit. in file .git/config: invalid unit" actual
 '
 
 test_expect_success 'invalid stdin config' '
-       echo "fatal: bad config line 1 in standard input " >expect &&
        echo "[broken" | test_must_fail git config --list --file - >output 2>&1 &&
-       test_cmp expect output
+       test_i18ngrep "bad config line 1 in standard input" output
 '
 
 cat > expect << EOF
@@ -1209,6 +1205,9 @@ test_expect_success POSIXPERM,PERL 'preserves existing permissions' '
          "die q(badrename) if ((stat(q(.git/config)))[2] & 07777) != 0600"
 '
 
+! test_have_prereq MINGW ||
+HOME="$(pwd)" # convert to Windows path
+
 test_expect_success 'set up --show-origin tests' '
        INCLUDE_DIR="$HOME/include" &&
        mkdir -p "$INCLUDE_DIR" &&
@@ -1308,7 +1307,7 @@ test_expect_success 'set up custom config file' '
        EOF
 '
 
-test_expect_success '--show-origin escape special file name characters' '
+test_expect_success !MINGW '--show-origin escape special file name characters' '
        cat >expect <<-\EOF &&
                file:"file\" (dq) and spaces.conf"      user.custom=true
        EOF
@@ -1337,7 +1336,7 @@ test_expect_success '--show-origin stdin with file include' '
        test_cmp expect output
 '
 
-test_expect_success '--show-origin blob' '
+test_expect_success !MINGW '--show-origin blob' '
        cat >expect <<-\EOF &&
                blob:a9d9f9e555b5c6f07cbe09d3f06fe3df11e09c08   user.custom=true
        EOF
@@ -1346,7 +1345,7 @@ test_expect_success '--show-origin blob' '
        test_cmp expect output
 '
 
-test_expect_success '--show-origin blob ref' '
+test_expect_success !MINGW '--show-origin blob ref' '
        cat >expect <<-\EOF &&
                blob:"master:file\" (dq) and spaces.conf"       user.custom=true
        EOF
index 0990f8d23571878fccb6e3607caa938590e3f683..a87d3d3fc1e2d6dca0fc6280e33637d2589d3235 100755 (executable)
@@ -93,7 +93,7 @@ test_expect_success 'git svn rebase works inside a fresh-cloned repository' '
 # > to special UNICODE characters in the range 0xf000 to 0xf0ff (the
 # > "Private use area") when creating or accessing files.
 prepare_a_utf8_locale
-test_expect_success UTF8 'svn.pathnameencoding=cp932 new file on dcommit' '
+test_expect_success UTF8,!MINGW,!UTF8_NFD_TO_NFC 'svn.pathnameencoding=cp932 new file on dcommit' '
        LC_ALL=$a_utf8_locale &&
        export LC_ALL &&
        neq=$(printf "\201\202") &&
@@ -105,7 +105,7 @@ test_expect_success UTF8 'svn.pathnameencoding=cp932 new file on dcommit' '
 '
 
 # See the comment on the above test for setting of LC_ALL.
-test_expect_success 'svn.pathnameencoding=cp932 rename on dcommit' '
+test_expect_success !MINGW,!UTF8_NFD_TO_NFC 'svn.pathnameencoding=cp932 rename on dcommit' '
        LC_ALL=$a_utf8_locale &&
        export LC_ALL &&
        inf=$(printf "\201\207") &&