]>
git.proxmox.com Git - libgit2.git/blob - tests/refs/branches/create.c
1 #include "clar_libgit2.h"
4 static git_repository
*repo
;
5 static git_commit
*target
;
6 static git_reference
*branch
;
8 void test_refs_branches_create__initialize(void)
10 cl_fixture_sandbox("testrepo.git");
11 cl_git_pass(git_repository_open(&repo
, "testrepo.git"));
16 void test_refs_branches_create__cleanup(void)
18 git_reference_free(branch
);
21 git_commit_free(target
);
24 git_repository_free(repo
);
27 cl_fixture_cleanup("testrepo.git");
30 static void retrieve_target_from_oid(git_commit
**out
, git_repository
*repo
, const char *sha
)
34 cl_git_pass(git_oid_fromstr(&oid
, sha
));
35 cl_git_pass(git_commit_lookup(out
, repo
, &oid
));
38 static void retrieve_known_commit(git_commit
**commit
, git_repository
*repo
)
40 retrieve_target_from_oid(commit
, repo
, "e90810b8df3e80c413d903f631643c716887138d");
43 #define NEW_BRANCH_NAME "new-branch-on-the-block"
45 void test_refs_branches_create__can_create_a_local_branch(void)
47 retrieve_known_commit(&target
, repo
);
49 cl_git_pass(git_branch_create(&branch
, repo
, NEW_BRANCH_NAME
, target
, 0));
50 cl_git_pass(git_oid_cmp(git_reference_target(branch
), git_commit_id(target
)));
53 void test_refs_branches_create__can_not_create_a_branch_if_its_name_collide_with_an_existing_one(void)
55 retrieve_known_commit(&target
, repo
);
57 cl_assert_equal_i(GIT_EEXISTS
, git_branch_create(&branch
, repo
, "br2", target
, 0));
60 void test_refs_branches_create__can_force_create_over_an_existing_branch(void)
62 retrieve_known_commit(&target
, repo
);
64 cl_git_pass(git_branch_create(&branch
, repo
, "br2", target
, 1));
65 cl_git_pass(git_oid_cmp(git_reference_target(branch
), git_commit_id(target
)));
66 cl_assert_equal_s("refs/heads/br2", git_reference_name(branch
));
70 void test_refs_branches_create__creating_a_branch_with_an_invalid_name_returns_EINVALIDSPEC(void)
72 retrieve_known_commit(&target
, repo
);
74 cl_assert_equal_i(GIT_EINVALIDSPEC
,
75 git_branch_create(&branch
, repo
, "inv@{id", target
, 0));