summaryrefslogtreecommitdiff
path: root/tests-clar/index/tests.c
diff options
context:
space:
mode:
authorVicent Marti <tanoku@gmail.com>2013-01-03 19:07:41 +0100
committerVicent Marti <tanoku@gmail.com>2013-01-03 19:07:41 +0100
commitf6fded8f9110aa05fe3d947d9e53cbd5cc13d1d5 (patch)
tree7698f06fdb887b5ea4bef471c66104161e88a80d /tests-clar/index/tests.c
parent600d8dbf6dccff5a9d86dd5ae01a53de46471796 (diff)
downloadlibgit2-f6fded8f9110aa05fe3d947d9e53cbd5cc13d1d5.tar.gz
Proper cleanup jeez
Diffstat (limited to 'tests-clar/index/tests.c')
-rw-r--r--tests-clar/index/tests.c83
1 files changed, 40 insertions, 43 deletions
diff --git a/tests-clar/index/tests.c b/tests-clar/index/tests.c
index d2ad71cc6..989734c1b 100644
--- a/tests-clar/index/tests.c
+++ b/tests-clar/index/tests.c
@@ -24,8 +24,6 @@ static struct test_entry test_entries[] = {
{48, "src/revobject.h", 1448, 0x4C3F7FE2}
};
-static char *path_to_cleanup = NULL;
-
// Helpers
static void copy_file(const char *src, const char *dst)
{
@@ -73,14 +71,6 @@ void test_index_tests__initialize(void)
{
}
-void test_index_tests__cleanup(void)
-{
- if (path_to_cleanup)
- cl_fixture_cleanup(path_to_cleanup);
- path_to_cleanup = NULL;
-}
-
-
void test_index_tests__empty_index(void)
{
git_index *index;
@@ -207,50 +197,57 @@ void test_index_tests__sort1(void)
git_index_free(index);
}
+static void cleanup_myrepo(void *opaque)
+{
+ GIT_UNUSED(opaque);
+ cl_fixture_cleanup("myrepo");
+}
+
void test_index_tests__add(void)
{
- git_index *index;
- git_filebuf file = GIT_FILEBUF_INIT;
- git_repository *repo;
- const git_index_entry *entry;
- git_oid id1;
+ git_index *index;
+ git_filebuf file = GIT_FILEBUF_INIT;
+ git_repository *repo;
+ const git_index_entry *entry;
+ git_oid id1;
- /* Intialize a new repository */
- cl_git_pass(git_repository_init(&repo, "./myrepo", 0));
+ cl_set_cleanup(&cleanup_myrepo, NULL);
- /* Ensure we're the only guy in the room */
- cl_git_pass(git_repository_index(&index, repo));
- cl_assert(git_index_entrycount(index) == 0);
+ /* Intialize a new repository */
+ cl_git_pass(git_repository_init(&repo, "./myrepo", 0));
- /* Create a new file in the working directory */
- cl_git_pass(git_futils_mkpath2file("myrepo/test.txt", 0777));
- cl_git_pass(git_filebuf_open(&file, "myrepo/test.txt", 0));
- cl_git_pass(git_filebuf_write(&file, "hey there\n", 10));
- cl_git_pass(git_filebuf_commit(&file, 0666));
+ /* Ensure we're the only guy in the room */
+ cl_git_pass(git_repository_index(&index, repo));
+ cl_assert(git_index_entrycount(index) == 0);
- /* Store the expected hash of the file/blob
- * This has been generated by executing the following
- * $ echo "hey there" | git hash-object --stdin
- */
- cl_git_pass(git_oid_fromstr(&id1, "a8233120f6ad708f843d861ce2b7228ec4e3dec6"));
+ /* Create a new file in the working directory */
+ cl_git_pass(git_futils_mkpath2file("myrepo/test.txt", 0777));
+ cl_git_pass(git_filebuf_open(&file, "myrepo/test.txt", 0));
+ cl_git_pass(git_filebuf_write(&file, "hey there\n", 10));
+ cl_git_pass(git_filebuf_commit(&file, 0666));
- /* Add the new file to the index */
- cl_git_pass(git_index_add_from_workdir(index, "test.txt"));
+ /* Store the expected hash of the file/blob
+ * This has been generated by executing the following
+ * $ echo "hey there" | git hash-object --stdin
+ */
+ cl_git_pass(git_oid_fromstr(&id1, "a8233120f6ad708f843d861ce2b7228ec4e3dec6"));
- /* Wow... it worked! */
- cl_assert(git_index_entrycount(index) == 1);
- entry = git_index_get_byindex(index, 0);
+ /* Add the new file to the index */
+ cl_git_pass(git_index_add_from_workdir(index, "test.txt"));
- /* And the built-in hashing mechanism worked as expected */
- cl_assert(git_oid_cmp(&id1, &entry->oid) == 0);
+ /* Wow... it worked! */
+ cl_assert(git_index_entrycount(index) == 1);
+ entry = git_index_get_byindex(index, 0);
- /* Test access by path instead of index */
- cl_assert((entry = git_index_get_bypath(index, "test.txt", 0)) != NULL);
- cl_assert(git_oid_cmp(&id1, &entry->oid) == 0);
+ /* And the built-in hashing mechanism worked as expected */
+ cl_assert(git_oid_cmp(&id1, &entry->oid) == 0);
- git_index_free(index);
- git_repository_free(repo);
- path_to_cleanup = "myrepo";
+ /* Test access by path instead of index */
+ cl_assert((entry = git_index_get_bypath(index, "test.txt", 0)) != NULL);
+ cl_assert(git_oid_cmp(&id1, &entry->oid) == 0);
+
+ git_index_free(index);
+ git_repository_free(repo);
}
void test_index_tests__add_from_workdir_to_a_bare_repository_returns_EBAREPO(void)