summaryrefslogtreecommitdiff
path: root/tests-clar/refdb/inmemory.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests-clar/refdb/inmemory.c')
-rw-r--r--tests-clar/refdb/inmemory.c66
1 files changed, 35 insertions, 31 deletions
diff --git a/tests-clar/refdb/inmemory.c b/tests-clar/refdb/inmemory.c
index 2cccd8eb2..243b5bb37 100644
--- a/tests-clar/refdb/inmemory.c
+++ b/tests-clar/refdb/inmemory.c
@@ -1,13 +1,15 @@
#include "clar_libgit2.h"
-#include "refdb.h"
-#include "repository.h"
+
+#include "buffer.h"
+#include "posix.h"
+#include "path.h"
+#include "refs.h"
+
#include "testdb.h"
#define TEST_REPO_PATH "testrepo"
static git_repository *repo;
-static git_refdb *refdb;
-static git_refdb_backend *refdb_backend;
int unlink_ref(void *payload, git_buf *file)
{
@@ -27,7 +29,7 @@ int ref_file_foreach(git_repository *repo, int (* cb)(void *payload, git_buf *fi
const char *repo_path;
git_buf repo_refs_dir = GIT_BUF_INIT;
int error = 0;
-
+
repo_path = git_repository_path(repo);
git_buf_joinpath(&repo_refs_dir, repo_path, "HEAD");
@@ -39,7 +41,7 @@ int ref_file_foreach(git_repository *repo, int (* cb)(void *payload, git_buf *fi
git_buf_joinpath(&repo_refs_dir, git_buf_cstr(&repo_refs_dir), "heads");
if (git_path_direach(&repo_refs_dir, cb, NULL) != 0)
return -1;
-
+
git_buf_joinpath(&repo_refs_dir, repo_path, "packed-refs");
if (git_path_exists(git_buf_cstr(&repo_refs_dir)) &&
cb(NULL, &repo_refs_dir) < 0)
@@ -53,17 +55,19 @@ int ref_file_foreach(git_repository *repo, int (* cb)(void *payload, git_buf *fi
void test_refdb_inmemory__initialize(void)
{
git_buf repo_refs_dir = GIT_BUF_INIT;
+ git_refdb *refdb;
+ git_refdb_backend *refdb_backend;
repo = cl_git_sandbox_init(TEST_REPO_PATH);
cl_git_pass(git_repository_refdb(&refdb, repo));
cl_git_pass(refdb_backend_test(&refdb_backend, repo));
cl_git_pass(git_refdb_set_backend(refdb, refdb_backend));
-
-
+
ref_file_foreach(repo, unlink_ref);
git_buf_free(&repo_refs_dir);
+ git_refdb_free(refdb);
}
void test_refdb_inmemory__cleanup(void)
@@ -75,10 +79,10 @@ void test_refdb_inmemory__doesnt_write_ref_file(void)
{
git_reference *ref;
git_oid oid;
-
+
cl_git_pass(git_oid_fromstr(&oid, "c47800c7266a2be04c571c04d5a6614691ea99bd"));
cl_git_pass(git_reference_create(&ref, repo, GIT_REFS_HEADS_DIR "test1", &oid, 0));
-
+
ref_file_foreach(repo, empty);
git_reference_free(ref);
@@ -88,10 +92,10 @@ void test_refdb_inmemory__read(void)
{
git_reference *write1, *write2, *write3, *read1, *read2, *read3;
git_oid oid1, oid2, oid3;
-
+
cl_git_pass(git_oid_fromstr(&oid1, "c47800c7266a2be04c571c04d5a6614691ea99bd"));
cl_git_pass(git_reference_create(&write1, repo, GIT_REFS_HEADS_DIR "test1", &oid1, 0));
-
+
cl_git_pass(git_oid_fromstr(&oid2, "e90810b8df3e80c413d903f631643c716887138d"));
cl_git_pass(git_reference_create(&write2, repo, GIT_REFS_HEADS_DIR "test2", &oid2, 0));
@@ -138,7 +142,7 @@ int foreach_test(const char *ref_name, void *payload)
cl_assert(git_oid_cmp(&expected, git_reference_target(ref)) == 0);
++(*i);
-
+
git_reference_free(ref);
return 0;
@@ -149,19 +153,19 @@ void test_refdb_inmemory__foreach(void)
git_reference *write1, *write2, *write3;
git_oid oid1, oid2, oid3;
size_t i = 0;
-
+
cl_git_pass(git_oid_fromstr(&oid1, "c47800c7266a2be04c571c04d5a6614691ea99bd"));
cl_git_pass(git_reference_create(&write1, repo, GIT_REFS_HEADS_DIR "test1", &oid1, 0));
-
+
cl_git_pass(git_oid_fromstr(&oid2, "e90810b8df3e80c413d903f631643c716887138d"));
cl_git_pass(git_reference_create(&write2, repo, GIT_REFS_HEADS_DIR "test2", &oid2, 0));
-
+
cl_git_pass(git_oid_fromstr(&oid3, "763d71aadf09a7951596c9746c024e7eece7c7af"));
cl_git_pass(git_reference_create(&write3, repo, GIT_REFS_HEADS_DIR "test3", &oid3, 0));
-
+
cl_git_pass(git_reference_foreach(repo, GIT_REF_LISTALL, foreach_test, &i));
- cl_assert_equal_i(i, 3);
-
+ cl_assert_equal_i(3, (int)i);
+
git_reference_free(write1);
git_reference_free(write2);
git_reference_free(write3);
@@ -174,14 +178,14 @@ int delete_test(const char *ref_name, void *payload)
size_t *i = payload;
cl_git_pass(git_reference_lookup(&ref, repo, ref_name));
-
- cl_git_pass(git_oid_fromstr(&expected, "e90810b8df3e80c413d903f631643c716887138d"));
+
+ cl_git_pass(git_oid_fromstr(&expected, "e90810b8df3e80c413d903f631643c716887138d"));
cl_assert(git_oid_cmp(&expected, git_reference_target(ref)) == 0);
-
+
++(*i);
-
+
git_reference_free(ref);
-
+
return 0;
}
@@ -190,24 +194,24 @@ void test_refdb_inmemory__delete(void)
git_reference *write1, *write2, *write3;
git_oid oid1, oid2, oid3;
size_t i = 0;
-
+
cl_git_pass(git_oid_fromstr(&oid1, "c47800c7266a2be04c571c04d5a6614691ea99bd"));
cl_git_pass(git_reference_create(&write1, repo, GIT_REFS_HEADS_DIR "test1", &oid1, 0));
-
+
cl_git_pass(git_oid_fromstr(&oid2, "e90810b8df3e80c413d903f631643c716887138d"));
cl_git_pass(git_reference_create(&write2, repo, GIT_REFS_HEADS_DIR "test2", &oid2, 0));
-
+
cl_git_pass(git_oid_fromstr(&oid3, "763d71aadf09a7951596c9746c024e7eece7c7af"));
cl_git_pass(git_reference_create(&write3, repo, GIT_REFS_HEADS_DIR "test3", &oid3, 0));
-
+
git_reference_delete(write1);
git_reference_free(write1);
-
+
git_reference_delete(write3);
git_reference_free(write3);
-
+
cl_git_pass(git_reference_foreach(repo, GIT_REF_LISTALL, delete_test, &i));
- cl_assert_equal_i(i, 1);
+ cl_assert_equal_i(1, (int)i);
git_reference_free(write2);
}