summaryrefslogtreecommitdiff
path: root/tests/describe/describe_helpers.c
blob: ad9c945c7df082a4408fc81406f5588239ddd2a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "describe_helpers.h"

void assert_describe(
	const char *expected_output,
	const char *revparse_spec,
	git_repository *repo,
	git_describe_options *opts,
	git_describe_format_options *fmt_opts)
{
	git_object *object;
	git_buf label = GIT_BUF_INIT;
	git_describe_result *result;

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

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

	cl_must_pass(p_fnmatch(expected_output, git_buf_cstr(&label), 0));

	git_describe_result_free(result);
	git_object_free(object);
	git_buf_free(&label);
}

void assert_describe_workdir(
	const char *expected_output,
	git_repository *repo,
	git_describe_options *opts,
	git_describe_format_options *fmt_opts)
{
	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));

	cl_must_pass(p_fnmatch(expected_output, git_buf_cstr(&label), 0));

	git_describe_result_free(result);
	git_buf_free(&label);
}