Merge branch 'vd/fsck-submodule-url-test'
Tighten URL checks fsck makes in a URL recorded for submodules. * vd/fsck-submodule-url-test: submodule-config.c: strengthen URL fsck check t7450: test submodule urls test-submodule: remove command line handling for check-name submodule-config.h: move check_submodule_url
This commit is contained in:
@ -9,12 +9,19 @@
|
||||
#include "submodule.h"
|
||||
|
||||
#define TEST_TOOL_CHECK_NAME_USAGE \
|
||||
"test-tool submodule check-name <name>"
|
||||
"test-tool submodule check-name"
|
||||
static const char *submodule_check_name_usage[] = {
|
||||
TEST_TOOL_CHECK_NAME_USAGE,
|
||||
NULL
|
||||
};
|
||||
|
||||
#define TEST_TOOL_CHECK_URL_USAGE \
|
||||
"test-tool submodule check-url"
|
||||
static const char *submodule_check_url_usage[] = {
|
||||
TEST_TOOL_CHECK_URL_USAGE,
|
||||
NULL
|
||||
};
|
||||
|
||||
#define TEST_TOOL_IS_ACTIVE_USAGE \
|
||||
"test-tool submodule is-active <name>"
|
||||
static const char *submodule_is_active_usage[] = {
|
||||
@ -31,31 +38,26 @@ static const char *submodule_resolve_relative_url_usage[] = {
|
||||
|
||||
static const char *submodule_usage[] = {
|
||||
TEST_TOOL_CHECK_NAME_USAGE,
|
||||
TEST_TOOL_CHECK_URL_USAGE,
|
||||
TEST_TOOL_IS_ACTIVE_USAGE,
|
||||
TEST_TOOL_RESOLVE_RELATIVE_URL_USAGE,
|
||||
NULL
|
||||
};
|
||||
|
||||
typedef int (*check_fn_t)(const char *);
|
||||
|
||||
/*
|
||||
* Exit non-zero if any of the submodule names given on the command line is
|
||||
* invalid. If no names are given, filter stdin to print only valid names
|
||||
* (which is primarily intended for testing).
|
||||
* Apply 'check_fn' to each line of stdin, printing values that pass the check
|
||||
* to stdout.
|
||||
*/
|
||||
static int check_name(int argc, const char **argv)
|
||||
static int check_submodule(check_fn_t check_fn)
|
||||
{
|
||||
if (argc > 1) {
|
||||
while (*++argv) {
|
||||
if (check_submodule_name(*argv) < 0)
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
while (strbuf_getline(&buf, stdin) != EOF) {
|
||||
if (!check_submodule_name(buf.buf))
|
||||
printf("%s\n", buf.buf);
|
||||
}
|
||||
strbuf_release(&buf);
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
while (strbuf_getline(&buf, stdin) != EOF) {
|
||||
if (!check_fn(buf.buf))
|
||||
printf("%s\n", buf.buf);
|
||||
}
|
||||
strbuf_release(&buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -69,7 +71,20 @@ static int cmd__submodule_check_name(int argc, const char **argv)
|
||||
if (argc)
|
||||
usage_with_options(submodule_check_name_usage, options);
|
||||
|
||||
return check_name(argc, argv);
|
||||
return check_submodule(check_submodule_name);
|
||||
}
|
||||
|
||||
static int cmd__submodule_check_url(int argc, const char **argv)
|
||||
{
|
||||
struct option options[] = {
|
||||
OPT_END()
|
||||
};
|
||||
argc = parse_options(argc, argv, "test-tools", options,
|
||||
submodule_check_url_usage, 0);
|
||||
if (argc)
|
||||
usage_with_options(submodule_check_url_usage, options);
|
||||
|
||||
return check_submodule(check_submodule_url);
|
||||
}
|
||||
|
||||
static int cmd__submodule_is_active(int argc, const char **argv)
|
||||
@ -195,6 +210,7 @@ static int cmd__submodule_config_writeable(int argc, const char **argv UNUSED)
|
||||
|
||||
static struct test_cmd cmds[] = {
|
||||
{ "check-name", cmd__submodule_check_name },
|
||||
{ "check-url", cmd__submodule_check_url },
|
||||
{ "is-active", cmd__submodule_is_active },
|
||||
{ "resolve-relative-url", cmd__submodule_resolve_relative_url},
|
||||
{ "config-list", cmd__submodule_config_list },
|
||||
|
||||
Reference in New Issue
Block a user