]> git.proxmox.com Git - libgit2.git/blame - tests-clar/repo/headtree.c
repo: Make git_repository_head_tree() return error codes
[libgit2.git] / tests-clar / repo / headtree.c
CommitLineData
5cec896a 1#include "clar_libgit2.h"
2#include "repository.h"
3#include "repo_helpers.h"
4#include "posix.h"
5
6static git_repository *repo;
7static git_tree *tree;
8
9void test_repo_headtree__initialize(void)
10{
11 repo = cl_git_sandbox_init("testrepo.git");
12 tree = NULL;
13}
14
15void test_repo_headtree__cleanup(void)
16{
17 git_tree_free(tree);
18 cl_git_sandbox_cleanup();
19}
20
21void test_repo_headtree__can_retrieve_the_root_tree_from_a_detached_head(void)
22{
23 cl_git_pass(git_repository_detach_head(repo));
24
25 cl_git_pass(git_repository_head_tree(&tree, repo));
26
27 cl_assert(git_oid_streq(git_tree_id(tree), "az"));
28}
29
30void test_repo_headtree__can_retrieve_the_root_tree_from_a_non_detached_head(void)
31{
32 cl_assert_equal_i(false, git_repository_head_detached(repo));
33
34 cl_git_pass(git_repository_head_tree(&tree, repo));
35
36 cl_assert(git_oid_streq(git_tree_id(tree), "az"));
37}
38
39void test_repo_headtree__when_head_is_orphaned_returns_EORPHANEDHEAD(void)
40{
41 make_head_orphaned(repo, NON_EXISTING_HEAD);
42
43 cl_assert_equal_i(true, git_repository_head_orphan(repo));
44
45 cl_assert_equal_i(GIT_EORPHANEDHEAD, git_repository_head_tree(&tree, repo));
46}
47
48void test_repo_headtree__when_head_is_missing_returns_ENOTFOUND(void)
49{
50 delete_head(repo);
51
52 cl_assert_equal_i(GIT_ENOTFOUND, git_repository_head_tree(&tree, repo));
53}