describe_helpers.c 1.1 KB
Newer Older
1 2
#include "describe_helpers.h"

3
#include "wildmatch.h"
4

5 6 7 8
void assert_describe(
	const char *expected_output,
	const char *revparse_spec,
	git_repository *repo,
9
	git_describe_options *opts,
10
	git_describe_format_options *fmt_opts)
11 12
{
	git_object *object;
13 14
	git_buf label = GIT_BUF_INIT;
	git_describe_result *result;
15 16 17

	cl_git_pass(git_revparse_single(&object, repo, revparse_spec));

18 19
	cl_git_pass(git_describe_commit(&result, object, opts));
	cl_git_pass(git_describe_format(&label, result, fmt_opts));
20

21
	cl_must_pass(wildmatch(expected_output, git_buf_cstr(&label), 0));
22

23
	git_describe_result_free(result);
24
	git_object_free(object);
25
	git_buf_dispose(&label);
26
}
27 28 29 30

void assert_describe_workdir(
	const char *expected_output,
	git_repository *repo,
31
	git_describe_options *opts,
32
	git_describe_format_options *fmt_opts)
33 34 35 36 37 38 39
{
	git_buf label = GIT_BUF_INIT;
	git_describe_result *result;

	cl_git_pass(git_describe_workdir(&result, repo, opts));
	cl_git_pass(git_describe_format(&label, result, fmt_opts));

40
	cl_must_pass(wildmatch(expected_output, git_buf_cstr(&label), 0));
41 42

	git_describe_result_free(result);
43
	git_buf_dispose(&label);
44
}