#include "clar_libgit2.h" #include "repository.h" #include "fetchhead.h" #include "fetchhead_data.h" #define DO_LOCAL_TEST 0 static git_repository *g_repo; void test_fetchhead_nonetwork__initialize(void) { g_repo = NULL; } static void cleanup_repository(void *path) { if (g_repo) { git_repository_free(g_repo); g_repo = NULL; } cl_fixture_cleanup((const char *)path); } void test_fetchhead_nonetwork__write(void) { git_vector fetchhead_vector; git_fetchhead_ref *fetchhead[6]; git_oid oid[6]; git_buf fetchhead_buf = GIT_BUF_INIT; size_t i; int equals = 0; git_vector_init(&fetchhead_vector, 6, NULL); cl_set_cleanup(&cleanup_repository, "./test1"); cl_git_pass(git_repository_init(&g_repo, "./test1", 0)); cl_git_pass(git_oid_fromstr(&oid[0], "49322bb17d3acc9146f98c97d078513228bbf3c0")); cl_git_pass(git_fetchhead_ref_create(&fetchhead[0], &oid[0], 1, "refs/heads/master", "git://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(&fetchhead_vector, fetchhead[0])); cl_git_pass(git_oid_fromstr(&oid[1], "0966a434eb1a025db6b71485ab63a3bfbea520b6")); cl_git_pass(git_fetchhead_ref_create(&fetchhead[1], &oid[1], 0, "refs/heads/first-merge", "git://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(&fetchhead_vector, fetchhead[1])); cl_git_pass(git_oid_fromstr(&oid[2], "42e4e7c5e507e113ebbb7801b16b52cf867b7ce1")); cl_git_pass(git_fetchhead_ref_create(&fetchhead[2], &oid[2], 0, "refs/heads/no-parent", "git://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(&fetchhead_vector, fetchhead[2])); cl_git_pass(git_oid_fromstr(&oid[3], "d96c4e80345534eccee5ac7b07fc7603b56124cb")); cl_git_pass(git_fetchhead_ref_create(&fetchhead[3], &oid[3], 0, "refs/tags/annotated_tag", "git://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(&fetchhead_vector, fetchhead[3])); cl_git_pass(git_oid_fromstr(&oid[4], "55a1a760df4b86a02094a904dfa511deb5655905")); cl_git_pass(git_fetchhead_ref_create(&fetchhead[4], &oid[4], 0, "refs/tags/blob", "git://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(&fetchhead_vector, fetchhead[4])); cl_git_pass(git_oid_fromstr(&oid[5], "8f50ba15d49353813cc6e20298002c0d17b0a9ee")); cl_git_pass(git_fetchhead_ref_create(&fetchhead[5], &oid[5], 0, "refs/tags/commit_tree", "git://github.com/libgit2/TestGitRepository")); cl_git_pass(git_vector_insert(&fetchhead_vector, fetchhead[5])); git_fetchhead_write(g_repo, &fetchhead_vector); cl_git_pass(git_futils_readbuffer(&fetchhead_buf, "./test1/.git/FETCH_HEAD")); equals = (strcmp(fetchhead_buf.ptr, FETCH_HEAD_WILDCARD_DATA) == 0); for (i=0; i < 6; i++) git_fetchhead_ref_free(fetchhead[i]); git_buf_free(&fetchhead_buf); git_vector_free(&fetchhead_vector); cl_assert(equals); }