]>
Commit | Line | Data |
---|---|---|
efd71f89 NTND |
1 | #include "git-compat-util.h" |
2 | #include "test-tool.h" | |
3 | ||
4 | struct test_cmd { | |
5 | const char *name; | |
6 | int (*fn)(int argc, const char **argv); | |
7 | }; | |
8 | ||
9 | static struct test_cmd cmds[] = { | |
0e496492 | 10 | { "chmtime", cmd__chmtime }, |
0e2678af | 11 | { "config", cmd__config }, |
e4998944 | 12 | { "ctype", cmd__ctype }, |
a801a7cf | 13 | { "date", cmd__date }, |
9153dde5 | 14 | { "delta", cmd__delta }, |
1c854745 | 15 | { "drop-caches", cmd__drop_caches }, |
06ccb29e | 16 | { "dump-cache-tree", cmd__dump_cache_tree }, |
f1ef0b02 | 17 | { "dump-fsmonitor", cmd__dump_fsmonitor }, |
8133061e | 18 | { "dump-split-index", cmd__dump_split_index }, |
cd780f0b | 19 | { "dump-untracked-cache", cmd__dump_untracked_cache }, |
dbceb3ec | 20 | { "example-decorate", cmd__example_decorate }, |
c680668d | 21 | { "genrandom", cmd__genrandom }, |
7c18cbd5 | 22 | { "hashmap", cmd__hashmap }, |
37649b7f | 23 | { "hash-speed", cmd__hash_speed }, |
cc6f663d | 24 | { "index-version", cmd__index_version }, |
75459410 | 25 | { "json-writer", cmd__json_writer }, |
64eb82fe | 26 | { "lazy-init-name-hash", cmd__lazy_init_name_hash }, |
9080e75f | 27 | { "match-trees", cmd__match_trees }, |
34889d3c | 28 | { "mergesort", cmd__mergesort }, |
d9cc2c87 | 29 | { "mktemp", cmd__mktemp }, |
c033cc15 | 30 | { "online-cpus", cmd__online_cpus }, |
2f17c78c | 31 | { "parse-options", cmd__parse_options }, |
b8d5cf4f | 32 | { "path-utils", cmd__path_utils }, |
8ea40cc5 | 33 | { "pkt-line", cmd__pkt_line }, |
15b75817 | 34 | { "prio-queue", cmd__prio_queue }, |
ab176ac4 | 35 | { "reach", cmd__reach }, |
5fbe600c | 36 | { "read-cache", cmd__read_cache }, |
4d80560c | 37 | { "read-midx", cmd__read_midx }, |
65370d81 | 38 | { "ref-store", cmd__ref_store }, |
9038531f | 39 | { "regex", cmd__regex }, |
dade47c0 | 40 | { "repository", cmd__repository }, |
77d4b8c8 | 41 | { "revision-walking", cmd__revision_walking }, |
ae6a51f5 | 42 | { "run-command", cmd__run_command }, |
ff5fb8b0 | 43 | { "scrap-cache-tree", cmd__scrap_cache_tree }, |
dae2ff9b | 44 | { "sha1", cmd__sha1 }, |
a0fe6e6e | 45 | { "sha1-array", cmd__sha1_array }, |
13eeedb5 | 46 | { "sha256", cmd__sha256 }, |
e154a6f3 | 47 | { "sigchain", cmd__sigchain }, |
1a5f3d70 | 48 | { "strcmp-offset", cmd__strcmp_offset }, |
c932a5ff | 49 | { "string-list", cmd__string_list }, |
b6188213 | 50 | { "submodule-config", cmd__submodule_config }, |
2b1257e4 | 51 | { "submodule-nested-repo-config", cmd__submodule_nested_repo_config }, |
112edd6a | 52 | { "subprocess", cmd__subprocess }, |
599fbd87 | 53 | { "urlmatch-normalization", cmd__urlmatch_normalization }, |
22231908 | 54 | { "xml-encode", cmd__xml_encode }, |
0489289d | 55 | { "wildmatch", cmd__wildmatch }, |
06ba9d03 JH |
56 | #ifdef GIT_WINDOWS_NATIVE |
57 | { "windows-named-pipe", cmd__windows_named_pipe }, | |
58 | #endif | |
c81f843d | 59 | { "write-cache", cmd__write_cache }, |
efd71f89 NTND |
60 | }; |
61 | ||
4e26569d JK |
62 | static NORETURN void die_usage(void) |
63 | { | |
64 | size_t i; | |
65 | ||
66 | fprintf(stderr, "usage: test-tool <toolname> [args]\n"); | |
67 | for (i = 0; i < ARRAY_SIZE(cmds); i++) | |
68 | fprintf(stderr, " %s\n", cmds[i].name); | |
69 | exit(128); | |
70 | } | |
71 | ||
efd71f89 NTND |
72 | int cmd_main(int argc, const char **argv) |
73 | { | |
74 | int i; | |
75 | ||
a86303cb | 76 | BUG_exit_code = 99; |
efd71f89 | 77 | if (argc < 2) |
4e26569d | 78 | die_usage(); |
efd71f89 NTND |
79 | |
80 | for (i = 0; i < ARRAY_SIZE(cmds); i++) { | |
81 | if (!strcmp(cmds[i].name, argv[1])) { | |
82 | argv++; | |
83 | argc--; | |
84 | return cmds[i].fn(argc, argv); | |
85 | } | |
86 | } | |
4e26569d JK |
87 | error("there is no tool named '%s'", argv[1]); |
88 | die_usage(); | |
efd71f89 | 89 | } |