Re: [PATCH v12 01/15] test: add test cases for relative_path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jiang Xin <worldhello.net@xxxxxxxxx> writes:

> diff --git a/test-path-utils.c b/test-path-utils.c
> index 0092cb..18267 100644
> --- a/test-path-utils.c
> +++ b/test-path-utils.c
> @@ -1,6 +1,19 @@
>  #include "cache.h"
>  #include "string-list.h"
>  
> +#define PARSE_ARGV_STRING(var, input) do { \
> +	if (!strcmp(input, "<null>")) { \
> +		var = NULL; \
> +	} else if (!strcmp(input, "<empty>")) { \
> +		var = ""; \
> +	} else if (*input == '<' || *input == '(') { \
> +		fprintf(stderr, "Bad value: %s\n", input); \
> +		return 1; \
> +	} else { \
> +		var = input; \
> +	} \
> +} while (0)

Yuck. Why does it have to be a macro like this?  I do not think
"because we may return" justifies it.

>  /*
>   * A "string_list_each_func_t" function that normalizes an entry from
>   * GIT_CEILING_DIRECTORIES.  If the path is unusable for some reason,
> @@ -103,6 +116,18 @@ int main(int argc, char **argv)
>  		return 0;
>  	}
>  
> +	if (argc == 4 && !strcmp(argv[1], "relative_path")) {
> +		const char *abs, *base, *rel;
> +		PARSE_ARGV_STRING(abs, argv[2]);
> +		PARSE_ARGV_STRING(base, argv[3]);
> +		rel = relative_path(abs, base);
> +		if (!rel)
> +			puts("(null)");
> +		else
> +			puts(strlen(rel) > 0 ? rel : "(empty)");
> +		return 0;
> +	}
> +
>  	fprintf(stderr, "%s: unknown function name: %s\n", argv[0],
>  		argv[1] ? argv[1] : "(there was none)");
>  	return 1;
--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]