Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/describe/describe.c')
-rw-r--r--tests/describe/describe.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/describe/describe.c b/tests/describe/describe.c
new file mode 100644
index 000000000..fcd4486bc
--- /dev/null
+++ b/tests/describe/describe.c
@@ -0,0 +1,47 @@
+#include "clar_libgit2.h"
+#include "describe_helpers.h"
+
+void test_describe_describe__can_describe_against_a_bare_repo(void)
+{
+ git_repository *repo;
+ git_describe_opts opts = GIT_DESCRIBE_OPTIONS_INIT;
+
+ cl_git_pass(git_repository_open(&repo, cl_fixture("testrepo.git")));
+
+ assert_describe("hard_tag", "HEAD", repo, &opts, false);
+
+ opts.show_commit_oid_as_fallback = 1;
+
+ assert_describe("be3563a", "HEAD^", repo, &opts, true);
+
+ git_repository_free(repo);
+}
+
+static int delete_cb(git_reference *ref, void *payload)
+{
+ GIT_UNUSED(payload);
+
+ cl_git_pass(git_reference_delete(ref));
+ git_reference_free(ref);
+
+ return 0;
+}
+
+void test_describe_describe__cannot_describe_against_a_repo_with_no_ref(void)
+{
+ git_repository *repo;
+ git_describe_opts opts = GIT_DESCRIBE_OPTIONS_INIT;
+ git_buf buf = GIT_BUF_INIT;
+ git_object *object;
+
+ repo = cl_git_sandbox_init("testrepo.git");
+ cl_git_pass(git_revparse_single(&object, repo, "HEAD"));
+
+ cl_git_pass(git_reference_foreach(repo, delete_cb, NULL));
+
+ cl_git_fail(git_describe_object(&buf, object, &opts));
+
+ git_object_free(object);
+ git_buf_free(&buf);
+ cl_git_sandbox_cleanup();
+}