Commit cd1ef822 by nulltoken

test: extract make_head_orphaned() logic

parent 209e34fa
#include "clar_libgit2.h" #include "clar_libgit2.h"
#include "refs.h" #include "refs.h"
#include "repo/repo_helpers.h"
static git_repository *g_repo; static git_repository *g_repo;
...@@ -15,10 +16,7 @@ void test_checkout_head__cleanup(void) ...@@ -15,10 +16,7 @@ void test_checkout_head__cleanup(void)
void test_checkout_head__checking_out_an_orphaned_head_returns_GIT_EORPHANEDHEAD(void) void test_checkout_head__checking_out_an_orphaned_head_returns_GIT_EORPHANEDHEAD(void)
{ {
git_reference *head; make_head_orphaned(g_repo, NON_EXISTING_HEAD);
cl_git_pass(git_reference_create_symbolic(&head, g_repo, GIT_HEAD_FILE, "refs/heads/hide/and/seek", 1));
git_reference_free(head);
cl_assert_equal_i(GIT_EORPHANEDHEAD, git_checkout_head(g_repo, NULL, NULL)); cl_assert_equal_i(GIT_EORPHANEDHEAD, git_checkout_head(g_repo, NULL, NULL));
} }
#include "clar_libgit2.h" #include "clar_libgit2.h"
#include "refs.h" #include "refs.h"
#include "repo/repo_helpers.h"
static git_repository *repo; static git_repository *repo;
static git_reference *fake_remote; static git_reference *fake_remote;
...@@ -52,11 +53,9 @@ void test_refs_branches_delete__can_delete_a_branch_even_if_HEAD_is_missing(void ...@@ -52,11 +53,9 @@ void test_refs_branches_delete__can_delete_a_branch_even_if_HEAD_is_missing(void
void test_refs_branches_delete__can_delete_a_branch_when_HEAD_is_orphaned(void) void test_refs_branches_delete__can_delete_a_branch_when_HEAD_is_orphaned(void)
{ {
git_reference *head;
git_reference *branch; git_reference *branch;
cl_git_pass(git_reference_create_symbolic(&head, repo, GIT_HEAD_FILE, "refs/heads/hide/and/seek", 1)); make_head_orphaned(repo, NON_EXISTING_HEAD);
git_reference_free(head);
cl_git_pass(git_branch_lookup(&branch, repo, "br2", GIT_BRANCH_LOCAL)); cl_git_pass(git_branch_lookup(&branch, repo, "br2", GIT_BRANCH_LOCAL));
cl_git_pass(git_branch_delete(branch)); cl_git_pass(git_branch_delete(branch));
...@@ -91,4 +90,3 @@ void test_refs_branches_delete__can_delete_a_remote_branch(void) ...@@ -91,4 +90,3 @@ void test_refs_branches_delete__can_delete_a_remote_branch(void)
cl_git_pass(git_branch_lookup(&branch, repo, "nulltoken/master", GIT_BRANCH_REMOTE)); cl_git_pass(git_branch_lookup(&branch, repo, "nulltoken/master", GIT_BRANCH_REMOTE));
cl_git_pass(git_branch_delete(branch)); cl_git_pass(git_branch_delete(branch));
} }
#include "clar_libgit2.h" #include "clar_libgit2.h"
#include "refs.h" #include "refs.h"
#include "repo/repo_helpers.h"
static git_repository *repo; static git_repository *repo;
static git_reference *branch; static git_reference *branch;
...@@ -22,21 +23,13 @@ void test_refs_branches_ishead__can_tell_if_a_branch_is_pointed_at_by_HEAD(void) ...@@ -22,21 +23,13 @@ void test_refs_branches_ishead__can_tell_if_a_branch_is_pointed_at_by_HEAD(void)
cl_assert_equal_i(true, git_branch_is_head(branch)); cl_assert_equal_i(true, git_branch_is_head(branch));
} }
static void make_head_orphaned(void)
{
git_reference *head;
cl_git_pass(git_reference_create_symbolic(&head, repo, GIT_HEAD_FILE, "refs/heads/hide/and/seek", 1));
git_reference_free(head);
}
void test_refs_branches_ishead__can_properly_handle_orphaned_HEAD(void) void test_refs_branches_ishead__can_properly_handle_orphaned_HEAD(void)
{ {
git_repository_free(repo); git_repository_free(repo);
repo = cl_git_sandbox_init("testrepo.git"); repo = cl_git_sandbox_init("testrepo.git");
make_head_orphaned(); make_head_orphaned(repo, NON_EXISTING_HEAD);
cl_git_pass(git_reference_lookup(&branch, repo, "refs/heads/master")); cl_git_pass(git_reference_lookup(&branch, repo, "refs/heads/master"));
......
#include "clar_libgit2.h" #include "clar_libgit2.h"
#include "refs.h" #include "refs.h"
#include "repo_helpers.h"
git_repository *repo; git_repository *repo;
...@@ -30,21 +31,13 @@ void test_repo_head__head_detached(void) ...@@ -30,21 +31,13 @@ void test_repo_head__head_detached(void)
cl_assert_equal_i(false, git_repository_head_detached(repo)); cl_assert_equal_i(false, git_repository_head_detached(repo));
} }
static void make_head_orphaned(void)
{
git_reference *head;
cl_git_pass(git_reference_create_symbolic(&head, repo, GIT_HEAD_FILE, "refs/heads/hide/and/seek", 1));
git_reference_free(head);
}
void test_repo_head__head_orphan(void) void test_repo_head__head_orphan(void)
{ {
git_reference *ref; git_reference *ref;
cl_assert(git_repository_head_orphan(repo) == 0); cl_assert(git_repository_head_orphan(repo) == 0);
make_head_orphaned(); make_head_orphaned(repo, NON_EXISTING_HEAD);
cl_assert(git_repository_head_orphan(repo) == 1); cl_assert(git_repository_head_orphan(repo) == 1);
...@@ -171,7 +164,7 @@ void test_repo_head__detach_head_Fails_if_HEAD_and_point_to_a_non_commitish(void ...@@ -171,7 +164,7 @@ void test_repo_head__detach_head_Fails_if_HEAD_and_point_to_a_non_commitish(void
void test_repo_head__detaching_an_orphaned_head_returns_GIT_EORPHANEDHEAD(void) void test_repo_head__detaching_an_orphaned_head_returns_GIT_EORPHANEDHEAD(void)
{ {
make_head_orphaned(); make_head_orphaned(repo, NON_EXISTING_HEAD);
cl_assert_equal_i(GIT_EORPHANEDHEAD, git_repository_detach_head(repo)); cl_assert_equal_i(GIT_EORPHANEDHEAD, git_repository_detach_head(repo));
} }
...@@ -180,7 +173,7 @@ void test_repo_head__retrieving_an_orphaned_head_returns_GIT_EORPHANEDHEAD(void) ...@@ -180,7 +173,7 @@ void test_repo_head__retrieving_an_orphaned_head_returns_GIT_EORPHANEDHEAD(void)
{ {
git_reference *head; git_reference *head;
make_head_orphaned(); make_head_orphaned(repo, NON_EXISTING_HEAD);
cl_assert_equal_i(GIT_EORPHANEDHEAD, git_repository_head(&head, repo)); cl_assert_equal_i(GIT_EORPHANEDHEAD, git_repository_head(&head, repo));
} }
#include "clar_libgit2.h"
#include "refs.h"
#include "repo_helpers.h"
void make_head_orphaned(git_repository* repo, const char *target)
{
git_reference *head;
cl_git_pass(git_reference_create_symbolic(&head, repo, GIT_HEAD_FILE, target, 1));
git_reference_free(head);
}
#include "common.h"
#define NON_EXISTING_HEAD "refs/heads/hide/and/seek"
extern void make_head_orphaned(git_repository* repo, const char *target);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment