diff options
| author | Junio C Hamano <gitster@pobox.com> | 2021-04-20 17:23:34 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2021-04-20 17:23:34 -0700 |
| commit | ab99efc817d463ddcd507a6457d33cd7643ed6dd (patch) | |
| tree | 2b1597971df4d0e396e63e5c323f5c65281282fb /t/helper/test-userdiff.c | |
| parent | Merge branch 'ar/userdiff-scheme' (diff) | |
| parent | blame tests: simplify userdiff driver test (diff) | |
| download | git-ab99efc817d463ddcd507a6457d33cd7643ed6dd.tar.gz git-ab99efc817d463ddcd507a6457d33cd7643ed6dd.zip | |
Merge branch 'ab/userdiff-tests'
A bit of code clean-up and a lot of test clean-up around userdiff
area.
* ab/userdiff-tests:
blame tests: simplify userdiff driver test
blame tests: don't rely on t/t4018/ directory
userdiff: remove support for "broken" tests
userdiff tests: list builtin drivers via test-tool
userdiff tests: explicitly test "default" pattern
userdiff: add and use for_each_userdiff_driver()
userdiff style: normalize pascal regex declaration
userdiff style: declare patterns with consistent style
userdiff style: re-order drivers in alphabetical order
Diffstat (limited to 't/helper/test-userdiff.c')
| -rw-r--r-- | t/helper/test-userdiff.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/t/helper/test-userdiff.c b/t/helper/test-userdiff.c new file mode 100644 index 0000000000..f013f8a31e --- /dev/null +++ b/t/helper/test-userdiff.c @@ -0,0 +1,46 @@ +#include "test-tool.h" +#include "cache.h" +#include "userdiff.h" +#include "config.h" + +static int driver_cb(struct userdiff_driver *driver, + enum userdiff_driver_type type, void *priv) +{ + enum userdiff_driver_type *want_type = priv; + if (type & *want_type && driver->funcname.pattern) + puts(driver->name); + return 0; +} + +static int cmd__userdiff_config(const char *var, const char *value, void *cb) +{ + if (userdiff_config(var, value) < 0) + return -1; + return 0; +} + +int cmd__userdiff(int argc, const char **argv) +{ + enum userdiff_driver_type want = 0; + if (argc != 2) + return 1; + + if (!strcmp(argv[1], "list-drivers")) + want = (USERDIFF_DRIVER_TYPE_BUILTIN | + USERDIFF_DRIVER_TYPE_CUSTOM); + else if (!strcmp(argv[1], "list-builtin-drivers")) + want = USERDIFF_DRIVER_TYPE_BUILTIN; + else if (!strcmp(argv[1], "list-custom-drivers")) + want = USERDIFF_DRIVER_TYPE_CUSTOM; + else + return error("unknown argument %s", argv[1]); + + if (want & USERDIFF_DRIVER_TYPE_CUSTOM) { + setup_git_directory(); + git_config(cmd__userdiff_config, NULL); + } + + for_each_userdiff_driver(driver_cb, &want); + + return 0; +} |
