summaryrefslogtreecommitdiff
path: root/tests/libgit2/describe/describe_helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libgit2/describe/describe_helpers.c')
-rw-r--r--tests/libgit2/describe/describe_helpers.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/libgit2/describe/describe_helpers.c b/tests/libgit2/describe/describe_helpers.c
new file mode 100644
index 000000000..3df3b7c59
--- /dev/null
+++ b/tests/libgit2/describe/describe_helpers.c
@@ -0,0 +1,44 @@
+#include "describe_helpers.h"
+
+#include "wildmatch.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(wildmatch(expected_output, label.ptr, 0));
+
+ git_describe_result_free(result);
+ git_object_free(object);
+ git_buf_dispose(&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(wildmatch(expected_output, label.ptr, 0));
+
+ git_describe_result_free(result);
+ git_buf_dispose(&label);
+}