Blame tests/refs/listall.c

Packit ae9e2a
#include "clar_libgit2.h"
Packit ae9e2a
#include "posix.h"
Packit ae9e2a
Packit ae9e2a
static git_repository *repo;
Packit ae9e2a
static git_strarray ref_list;
Packit ae9e2a
Packit ae9e2a
static void ensure_no_refname_starts_with_a_forward_slash(const char *path)
Packit ae9e2a
{
Packit ae9e2a
	size_t i;
Packit ae9e2a
Packit ae9e2a
	cl_git_pass(git_repository_open(&repo, path));
Packit ae9e2a
	cl_git_pass(git_reference_list(&ref_list, repo));
Packit ae9e2a
Packit ae9e2a
	cl_assert(ref_list.count > 0);
Packit ae9e2a
Packit ae9e2a
	for (i = 0; i < ref_list.count; i++)
Packit ae9e2a
		cl_assert(git__prefixcmp(ref_list.strings[i], "/") != 0);
Packit ae9e2a
Packit ae9e2a
	git_strarray_free(&ref_list);
Packit ae9e2a
	git_repository_free(repo);
Packit ae9e2a
}
Packit ae9e2a
Packit ae9e2a
void test_refs_listall__from_repository_opened_through_workdir_path(void)
Packit ae9e2a
{
Packit ae9e2a
	cl_fixture_sandbox("status");
Packit ae9e2a
	cl_git_pass(p_rename("status/.gitted", "status/.git"));
Packit ae9e2a
Packit ae9e2a
	ensure_no_refname_starts_with_a_forward_slash("status");
Packit ae9e2a
Packit ae9e2a
	cl_fixture_cleanup("status");
Packit ae9e2a
}
Packit ae9e2a
Packit ae9e2a
void test_refs_listall__from_repository_opened_through_gitdir_path(void)
Packit ae9e2a
{
Packit ae9e2a
	ensure_no_refname_starts_with_a_forward_slash(cl_fixture("testrepo.git"));
Packit ae9e2a
}
Packit ae9e2a
Packit ae9e2a
void test_refs_listall__from_repository_with_no_trailing_newline(void)
Packit ae9e2a
{
Packit ae9e2a
	cl_git_pass(git_repository_open(&repo, cl_fixture("bad_tag.git")));
Packit ae9e2a
	cl_git_pass(git_reference_list(&ref_list, repo));
Packit ae9e2a
Packit ae9e2a
	cl_assert(ref_list.count > 0);
Packit ae9e2a
Packit ae9e2a
	git_strarray_free(&ref_list);
Packit ae9e2a
	git_repository_free(repo);
Packit ae9e2a
}