2013/6/25 Junio C Hamano <gitster@xxxxxxxxx>: > Jiang Xin <worldhello.net@xxxxxxxxx> writes: > >> diff --git a/test-path-utils.c b/test-path-utils.c >> index 0092cb..dcc530 100644 >> --- a/test-path-utils.c >> +++ b/test-path-utils.c >> @@ -28,6 +28,19 @@ static int normalize_ceiling_entry(struct string_list_item *item, void *unused) >> return 1; >> } >> >> +static void normalize_argv_string(const char **var, const char *input) >> +{ >> + if (!strcmp(input, "<null>")) >> + *var = NULL; >> + else if (!strcmp(input, "<empty>")) >> + *var = ""; >> + else >> + *var = input; >> + >> + if (*var && (**var == '<' || **var == '(')) >> + die("Bad value: %s\n", input); >> +} >> + > > If you have to munge the input string like this anyway, perhaps you > can work around the command line mangling done by Windows bash > runtime, perhaps add something like: > > if (*input == '_') > input++; > > and then protecting the path with the underscore, like so? > > relative_path _/a/b/c/ _/a/b/ c/ > > Wouldn't that let you avoid having to handle "POSIX" prereq for > these paths? > In order to test NULL pointer in t/t0060, I have to write normalize_argv_string to convert "<null>" to NULL. So that I can write test case in t/t0060-path-utils.sh like this: relative_path "<null>" "<null>" ./ And for the same reason, output would be "(null)" for NULL pointer. Use "(null)" not "<null>" for output, because I want to make sure the conversion must happen for input and output. I found it would be nice to wrap input empty string as "<empty>" and wrap output of empty string as "(empty)" for the readability of both input and output of test cases. Add prefix _ to workaround the absolute path rewritten issue in msysGit is interesting, but these test cases have already been tested in Linux, right? Patch 16/16 turns on most of the test cases which could only run under POSIX previously, and test these test cases in Windows way. -- Jiang Xin -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html