]> git.proxmox.com Git - libgit2.git/blob - tests/describe/describe.c
New upstream version 1.4.3+dfsg.1
[libgit2.git] / tests / describe / describe.c
1 #include "clar_libgit2.h"
2 #include "describe_helpers.h"
3
4 void test_describe_describe__can_describe_against_a_bare_repo(void)
5 {
6 git_repository *repo;
7 git_describe_options opts = GIT_DESCRIBE_OPTIONS_INIT;
8 git_describe_format_options fmt_opts = GIT_DESCRIBE_FORMAT_OPTIONS_INIT;
9
10 cl_git_pass(git_repository_open(&repo, cl_fixture("testrepo.git")));
11
12 assert_describe("hard_tag", "HEAD", repo, &opts, &fmt_opts);
13
14 opts.show_commit_oid_as_fallback = 1;
15
16 assert_describe("be3563a*", "HEAD^", repo, &opts, &fmt_opts);
17
18 git_repository_free(repo);
19 }
20
21 static int delete_cb(git_reference *ref, void *payload)
22 {
23 GIT_UNUSED(payload);
24
25 cl_git_pass(git_reference_delete(ref));
26 git_reference_free(ref);
27
28 return 0;
29 }
30
31 void test_describe_describe__describe_a_repo_with_no_refs(void)
32 {
33 git_repository *repo;
34 git_describe_options opts = GIT_DESCRIBE_OPTIONS_INIT;
35 git_str buf = GIT_STR_INIT;
36 git_object *object;
37 git_describe_result *result = NULL;
38
39 repo = cl_git_sandbox_init("testrepo.git");
40 cl_git_pass(git_revparse_single(&object, repo, "HEAD"));
41
42 cl_git_pass(git_reference_foreach(repo, delete_cb, NULL));
43
44 /* Impossible to describe without falling back to OIDs */
45 cl_git_fail(git_describe_commit(&result, object, &opts));
46
47 /* Try again with OID fallbacks */
48 opts.show_commit_oid_as_fallback = 1;
49 cl_git_pass(git_describe_commit(&result, object, &opts));
50
51 git_describe_result_free(result);
52 git_object_free(object);
53 git_str_dispose(&buf);
54 cl_git_sandbox_cleanup();
55 }