reflog: test reflog is deleted when ref is deleted

This commit is contained in:
Edward Thomson 2015-11-03 14:48:31 -05:00
parent db1edf91e9
commit 2d556f3166

View File

@ -125,6 +125,24 @@ void test_refs_reflog_reflog__renaming_the_reference_moves_the_reflog(void)
git_buf_free(&master_log_path); git_buf_free(&master_log_path);
} }
void test_refs_reflog_reflog__deleting_the_reference_deletes_the_reflog(void)
{
git_reference *master;
git_buf master_log_path = GIT_BUF_INIT;
git_buf_joinpath(&master_log_path, git_repository_path(g_repo), GIT_REFLOG_DIR);
git_buf_joinpath(&master_log_path, git_buf_cstr(&master_log_path), "refs/heads/master");
cl_assert_equal_i(true, git_path_isfile(git_buf_cstr(&master_log_path)));
cl_git_pass(git_reference_lookup(&master, g_repo, "refs/heads/master"));
cl_git_pass(git_reference_delete(master));
git_reference_free(master);
cl_assert_equal_i(false, git_path_isfile(git_buf_cstr(&master_log_path)));
git_buf_free(&master_log_path);
}
static void assert_has_reflog(bool expected_result, const char *name) static void assert_has_reflog(bool expected_result, const char *name)
{ {
cl_assert_equal_i(expected_result, git_reference_has_log(g_repo, name)); cl_assert_equal_i(expected_result, git_reference_has_log(g_repo, name));