1 #include "clar_libgit2.h"
2 #include "describe_helpers.h"
4 void test_describe_describe__can_describe_against_a_bare_repo(void)
7 git_describe_options opts
= GIT_DESCRIBE_OPTIONS_INIT
;
8 git_describe_format_options fmt_opts
= GIT_DESCRIBE_FORMAT_OPTIONS_INIT
;
10 cl_git_pass(git_repository_open(&repo
, cl_fixture("testrepo.git")));
12 assert_describe("hard_tag", "HEAD", repo
, &opts
, &fmt_opts
);
14 opts
.show_commit_oid_as_fallback
= 1;
16 assert_describe("be3563a*", "HEAD^", repo
, &opts
, &fmt_opts
);
18 git_repository_free(repo
);
21 static int delete_cb(git_reference
*ref
, void *payload
)
25 cl_git_pass(git_reference_delete(ref
));
26 git_reference_free(ref
);
31 void test_describe_describe__describe_a_repo_with_no_refs(void)
34 git_describe_options opts
= GIT_DESCRIBE_OPTIONS_INIT
;
35 git_str buf
= GIT_STR_INIT
;
37 git_describe_result
*result
= NULL
;
39 repo
= cl_git_sandbox_init("testrepo.git");
40 cl_git_pass(git_revparse_single(&object
, repo
, "HEAD"));
42 cl_git_pass(git_reference_foreach(repo
, delete_cb
, NULL
));
44 /* Impossible to describe without falling back to OIDs */
45 cl_git_fail(git_describe_commit(&result
, object
, &opts
));
47 /* Try again with OID fallbacks */
48 opts
.show_commit_oid_as_fallback
= 1;
49 cl_git_pass(git_describe_commit(&result
, object
, &opts
));
51 git_describe_result_free(result
);
52 git_object_free(object
);
53 git_str_dispose(&buf
);
54 cl_git_sandbox_cleanup();