summaryrefslogtreecommitdiff
path: root/t/helper/test-tool.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2019-05-08 15:37:27 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-05-08 15:37:27 (GMT)
commitcaa227ff458f34155ef4e974ba9e57c857c02c01 (patch)
treed5710ac6b84f68bfbbdca6dc0501e96e943fe7e0 /t/helper/test-tool.c
parentf560a4d1598106258f43d0d5cc04cae3e6aa93e2 (diff)
parentb7ce24d09526d4e181920ee029c25438196c2847 (diff)
downloadgit-caa227ff458f34155ef4e974ba9e57c857c02c01.zip
git-caa227ff458f34155ef4e974ba9e57c857c02c01.tar.gz
git-caa227ff458f34155ef4e974ba9e57c857c02c01.tar.bz2
Merge branch 'js/misc-doc-fixes'
"make check-docs", "git help -a", etc. did not account for cases where a particular build may deliberately omit some subcommands, which has been corrected. * js/misc-doc-fixes: Turn `git serve` into a test helper test-tool: handle the `-C <directory>` option just like `git` check-docs: do not bother checking for legacy scripts' documentation docs: exclude documentation for commands that have been excluded check-docs: allow command-list.txt to contain excluded commands help -a: do not list commands that are excluded from the build Makefile: drop the NO_INSTALL variable remote-testgit: move it into the support directory for t5801
Diffstat (limited to 't/helper/test-tool.c')
-rw-r--r--t/helper/test-tool.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/t/helper/test-tool.c b/t/helper/test-tool.c
index 53c0693..087a8c0 100644
--- a/t/helper/test-tool.c
+++ b/t/helper/test-tool.c
@@ -1,6 +1,12 @@
#include "git-compat-util.h"
#include "test-tool.h"
#include "trace2.h"
+#include "parse-options.h"
+
+static const char * const test_tool_usage[] = {
+ "test-tool [-C <directory>] <command [<arguments>...]]",
+ NULL
+};
struct test_cmd {
const char *name;
@@ -43,6 +49,7 @@ static struct test_cmd cmds[] = {
{ "revision-walking", cmd__revision_walking },
{ "run-command", cmd__run_command },
{ "scrap-cache-tree", cmd__scrap_cache_tree },
+ { "serve-v2", cmd__serve_v2 },
{ "sha1", cmd__sha1 },
{ "sha1-array", cmd__sha1_array },
{ "sha256", cmd__sha256 },
@@ -75,11 +82,24 @@ static NORETURN void die_usage(void)
int cmd_main(int argc, const char **argv)
{
int i;
+ const char *working_directory = NULL;
+ struct option options[] = {
+ OPT_STRING('C', NULL, &working_directory, "directory",
+ "change the working directory"),
+ OPT_END()
+ };
BUG_exit_code = 99;
+ argc = parse_options(argc, argv, NULL, options, test_tool_usage,
+ PARSE_OPT_STOP_AT_NON_OPTION |
+ PARSE_OPT_KEEP_ARGV0);
+
if (argc < 2)
die_usage();
+ if (working_directory && chdir(working_directory) < 0)
+ die("Could not cd to '%s'", working_directory);
+
for (i = 0; i < ARRAY_SIZE(cmds); i++) {
if (!strcmp(cmds[i].name, argv[1])) {
argv++;