From: Jiang Xin <worldhello.net@gmail.com>
To: Junio C Hamano <gitster@pobox.com>, Johannes Sixt <j6t@kdbg.org>
Cc: Git List <git@vger.kernel.org>, Jiang Xin <worldhello.net@gmail.com>
Subject: [PATCH v15 16/16] test: run testcases with POSIX absolute paths on Windows
Date: Tue, 25 Jun 2013 23:53:57 +0800 [thread overview]
Message-ID: <efaab326bda8d9da8e16625a3889262fa1175b93.1372175283.git.worldhello.net@gmail.com> (raw)
In-Reply-To: <cover.1372175282.git.worldhello.net@gmail.com>
In-Reply-To: <cover.1372175282.git.worldhello.net@gmail.com>
Some test cases are skipped on Windows by marking with POSIX prereq.
This is because arguments look like absolute paths (such as /a/b)
for regular Windows programs (*.exe executables, no bash scripts)
are changed to Windows paths (like C:/msysgit/a/b).
There is no cygpath nor equivalent on msysGit, but it is easy to
write one. New subcommand "mingw_path" is added in test-path-utils,
so that we can get the expected absolute paths on Windows. E.g.
COMMAND LINE Linux output Windows output
================================== ============ ===============
test-path-utils mingw_path / / C:/msysgit
test-path-utils mingw_path /a/b/ /a/b/ C:/msysgit/a/b/
With this utility, most skipped test cases in t0060 can be turned on
to be tested correctly on Windows.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
---
t/t0060-path-utils.sh | 44 +++++++++++++++++++++++---------------------
test-path-utils.c | 5 +++++
2 files changed, 28 insertions(+), 21 deletions(-)
diff --git a/t/t0060-path-utils.sh b/t/t0060-path-utils.sh
index 76c779..3a48d 100755
--- a/t/t0060-path-utils.sh
+++ b/t/t0060-path-utils.sh
@@ -8,13 +8,15 @@ test_description='Test various path utilities'
. ./test-lib.sh
norm_path() {
+ expected=$(test-path-utils mingw_path "$2")
test_expect_success $3 "normalize path: $1 => $2" \
- "test \"\$(test-path-utils normalize_path_copy '$1')\" = '$2'"
+ "test \"\$(test-path-utils normalize_path_copy '$1')\" = '$expected'"
}
relative_path() {
+ expected=$(test-path-utils mingw_path "$3")
test_expect_success $4 "relative path: $1 $2 => $3" \
- "test \"\$(test-path-utils relative_path '$1' '$2')\" = '$3'"
+ "test \"\$(test-path-utils relative_path '$1' '$2')\" = '$expected'"
}
# On Windows, we are using MSYS's bash, which mangles the paths.
@@ -39,8 +41,8 @@ ancestor() {
test \"\$actual\" = '$expected'"
}
-# Absolute path tests must be skipped on Windows because due to path mangling
-# the test program never sees a POSIX-style absolute path
+# Some absolute path tests should be skipped on Windows due to path mangling
+# on POSIX-style absolute paths
case $(uname -s) in
*MINGW*)
;;
@@ -73,30 +75,30 @@ norm_path d1/s1//../s2/../../d2 d2
norm_path d1/.../d2 d1/.../d2
norm_path d1/..././../d2 d1/d2
-norm_path / / POSIX
+norm_path / /
norm_path // / POSIX
norm_path /// / POSIX
-norm_path /. / POSIX
+norm_path /. /
norm_path /./ / POSIX
norm_path /./.. ++failed++ POSIX
-norm_path /../. ++failed++ POSIX
+norm_path /../. ++failed++
norm_path /./../.// ++failed++ POSIX
norm_path /dir/.. / POSIX
norm_path /dir/sub/../.. / POSIX
norm_path /dir/sub/../../.. ++failed++ POSIX
-norm_path /dir /dir POSIX
-norm_path /dir// /dir/ POSIX
-norm_path /./dir /dir POSIX
-norm_path /dir/. /dir/ POSIX
-norm_path /dir///./ /dir/ POSIX
-norm_path /dir//sub/.. /dir/ POSIX
-norm_path /dir/sub/../ /dir/ POSIX
+norm_path /dir /dir
+norm_path /dir// /dir/
+norm_path /./dir /dir
+norm_path /dir/. /dir/
+norm_path /dir///./ /dir/
+norm_path /dir//sub/.. /dir/
+norm_path /dir/sub/../ /dir/
norm_path //dir/sub/../. /dir/ POSIX
-norm_path /dir/s1/../s2/ /dir/s2/ POSIX
-norm_path /d1/s1///s2/..//../s3/ /d1/s3/ POSIX
-norm_path /d1/s1//../s2/../../d2 /d2 POSIX
-norm_path /d1/.../d2 /d1/.../d2 POSIX
-norm_path /d1/..././../d2 /d1/d2 POSIX
+norm_path /dir/s1/../s2/ /dir/s2/
+norm_path /d1/s1///s2/..//../s3/ /d1/s3/
+norm_path /d1/s1//../s2/../../d2 /d2
+norm_path /d1/.../d2 /d1/.../d2
+norm_path /d1/..././../d2 /d1/d2
ancestor / / -1
ancestor /foo / 0
@@ -198,8 +200,8 @@ relative_path / /a/b/ ../../
relative_path /a/c /a/b/ ../c
relative_path /a/c /a/b ../c
relative_path /x/y /a/b/ ../../x/y
-relative_path /a/b "<empty>" /a/b POSIX
-relative_path /a/b "<null>" /a/b POSIX
+relative_path /a/b "<empty>" /a/b
+relative_path /a/b "<null>" /a/b
relative_path a/b/c/ a/b/ c/
relative_path a/b/c/ a/b c/
relative_path a/b//c a//b c
diff --git a/test-path-utils.c b/test-path-utils.c
index 1bf473..bb975 100644
--- a/test-path-utils.c
+++ b/test-path-utils.c
@@ -116,6 +116,11 @@ int main(int argc, char **argv)
return 0;
}
+ if (argc == 3 && !strcmp(argv[1], "mingw_path")) {
+ puts(argv[2]);
+ return 0;
+ }
+
if (argc == 4 && !strcmp(argv[1], "relative_path")) {
struct strbuf sb = STRBUF_INIT;
const char *in, *prefix, *rel;
--
1.8.3.1.756.g2e9b71f
next prev parent reply other threads:[~2013-06-25 15:55 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-25 15:53 [PATCH v15 00/16] Interactive git clean Jiang Xin
2013-06-25 15:53 ` [PATCH v15 01/16] test: add test cases for relative_path Jiang Xin
2013-06-26 17:44 ` Junio C Hamano
2013-06-27 1:00 ` Jiang Xin
2013-06-25 15:53 ` [PATCH v15 02/16] path.c: refactor relative_path(), not only strip prefix Jiang Xin
2013-06-26 17:44 ` Junio C Hamano
2013-06-27 3:31 ` Jiang Xin
2013-06-25 15:53 ` [PATCH v15 03/16] quote.c: substitute path_relative with relative_path Jiang Xin
2013-06-26 17:44 ` Junio C Hamano
2013-06-25 15:53 ` [PATCH v15 04/16] Refactor quote_path_relative, remove unused params Jiang Xin
2013-06-26 17:47 ` Junio C Hamano
2013-06-27 1:47 ` Jiang Xin
2013-06-25 15:53 ` [PATCH v15 05/16] Refactor write_name_quoted_relative, " Jiang Xin
2013-06-25 15:53 ` [PATCH v15 06/16] git-clean: refactor git-clean into two phases Jiang Xin
2013-06-25 15:53 ` [PATCH v15 07/16] git-clean: add support for -i/--interactive Jiang Xin
2013-06-25 15:53 ` [PATCH v15 08/16] git-clean: show items of del_list in columns Jiang Xin
2013-06-25 15:53 ` [PATCH v15 09/16] git-clean: add colors to interactive git-clean Jiang Xin
2013-06-25 15:53 ` [PATCH v15 10/16] git-clean: use a git-add-interactive compatible UI Jiang Xin
2013-06-25 15:53 ` [PATCH v15 11/16] git-clean: add filter by pattern interactive action Jiang Xin
2013-06-25 15:53 ` [PATCH v15 12/16] git-clean: add select by numbers " Jiang Xin
2013-06-25 15:53 ` [PATCH v15 13/16] git-clean: add ask each " Jiang Xin
2013-06-25 15:53 ` [PATCH v15 14/16] git-clean: add documentation for interactive git-clean Jiang Xin
2013-06-25 15:53 ` [PATCH v15 15/16] test: add t7301 for git-clean--interactive Jiang Xin
2013-06-25 15:53 ` Jiang Xin [this message]
2013-06-26 18:03 ` [PATCH v15 00/16] Interactive git clean Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=efaab326bda8d9da8e16625a3889262fa1175b93.1372175283.git.worldhello.net@gmail.com \
--to=worldhello.net@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j6t@kdbg.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).