diff options
Diffstat (limited to 'tests-clar/refs/list.c')
-rw-r--r-- | tests-clar/refs/list.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests-clar/refs/list.c b/tests-clar/refs/list.c new file mode 100644 index 000000000..2a7b157ca --- /dev/null +++ b/tests-clar/refs/list.c @@ -0,0 +1,53 @@ +#include "clar_libgit2.h" + +#include "repository.h" +#include "git2/reflog.h" +#include "reflog.h" + +static git_repository *g_repo; + + + +void test_refs_list__initialize(void) +{ + g_repo = cl_git_sandbox_init("testrepo"); +} + +void test_refs_list__cleanup(void) +{ + cl_git_sandbox_cleanup(); +} + + + +void test_refs_list__all(void) +{ + // try to list all the references in our test repo + git_strarray ref_list; + + cl_git_pass(git_reference_list(&ref_list, g_repo, GIT_REF_LISTALL)); + + /*{ + unsigned short i; + for (i = 0; i < ref_list.count; ++i) + printf("# %s\n", ref_list.strings[i]); + }*/ + + /* We have exactly 9 refs in total if we include the packed ones: + * there is a reference that exists both in the packfile and as + * loose, but we only list it once */ + cl_assert(ref_list.count == 9); + + git_strarray_free(&ref_list); +} + +void test_refs_list__symbolic_only(void) +{ + // try to list only the symbolic references + git_strarray ref_list; + + cl_git_pass(git_reference_list(&ref_list, g_repo, GIT_REF_SYMBOLIC)); + cl_assert(ref_list.count == 0); /* no symrefs in the test repo */ + + git_strarray_free(&ref_list); +} |