1
0
mirror of https://github.com/git/git.git synced 2024-10-19 21:08:12 +02:00
git/t/helper/test-parse-pathspec-file.c
Alexandr Miloslavskiy d0d0a357a1 t: directly test parse_pathspec_file()
Previously, `parse_pathspec_file()` was tested indirectly by invoking
git commands with properly crafted inputs. As demonstrated by the
previous bugfix, testing complicated black boxes indirectly can lead to
tests that silently test the wrong thing.

Introduce direct tests for `parse_pathspec_file()`.

Signed-off-by: Alexandr Miloslavskiy <alexandr.miloslavskiy@syntevo.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-01-15 12:14:20 -08:00

34 lines
779 B
C

#include "test-tool.h"
#include "parse-options.h"
#include "pathspec.h"
#include "gettext.h"
int cmd__parse_pathspec_file(int argc, const char **argv)
{
struct pathspec pathspec;
const char *pathspec_from_file = 0;
int pathspec_file_nul = 0, i;
static const char *const usage[] = {
"test-tool parse-pathspec-file --pathspec-from-file [--pathspec-file-nul]",
NULL
};
struct option options[] = {
OPT_PATHSPEC_FROM_FILE(&pathspec_from_file),
OPT_PATHSPEC_FILE_NUL(&pathspec_file_nul),
OPT_END()
};
parse_options(argc, argv, 0, options, usage, 0);
parse_pathspec_file(&pathspec, 0, 0, 0, pathspec_from_file,
pathspec_file_nul);
for (i = 0; i < pathspec.nr; i++)
printf("%s\n", pathspec.items[i].original);
clear_pathspec(&pathspec);
return 0;
}