summaryrefslogtreecommitdiff
path: root/tests-clar/diff/iterator.c
diff options
context:
space:
mode:
authorRussell Belfer <arrbee@arrbee.com>2012-02-29 12:04:59 -0800
committerRussell Belfer <arrbee@arrbee.com>2012-03-02 15:51:55 -0800
commit854eccbb2d86c2910f9d98dc52f9ebd0e37c262a (patch)
treeb22048a02480598477cde9c41fc16d3967226d6b /tests-clar/diff/iterator.c
parent74fa4bfae37e9d7c9e35550c881b114d7a83c4fa (diff)
downloadlibgit2-854eccbb2d86c2910f9d98dc52f9ebd0e37c262a.tar.gz
Clean up GIT_UNUSED macros on all platforms
It turns out that commit 31e9cfc4cbcaf1b38cdd3dbe3282a8f57e5366a5 did not fix the GIT_USUSED behavior on all platforms. This commit walks through and really cleans things up more thoroughly, getting rid of the unnecessary stuff. To remove the use of some GIT_UNUSED, I ended up adding a couple of new iterators for hashtables that allow you to iterator just over keys or just over values. In making this change, I found a bug in the clar tests (where we were doing *count++ but meant to do (*count)++ to increment the value). I fixed that but then found the test failing because it was not really using an empty repo. So, I took some of the code that I wrote for iterator testing and moved it to clar_helpers.c, then made use of that to make it easier to open fixtures on a per test basis even within a single test file.
Diffstat (limited to 'tests-clar/diff/iterator.c')
-rw-r--r--tests-clar/diff/iterator.c50
1 files changed, 8 insertions, 42 deletions
diff --git a/tests-clar/diff/iterator.c b/tests-clar/diff/iterator.c
index 1ad126ca..3953fd83 100644
--- a/tests-clar/diff/iterator.c
+++ b/tests-clar/diff/iterator.c
@@ -2,37 +2,6 @@
#include "diff_helpers.h"
#include "iterator.h"
-static git_repository *g_repo = NULL;
-static const char *g_sandbox = NULL;
-
-static void setup_sandbox(const char *sandbox)
-{
- cl_fixture_sandbox(sandbox);
- g_sandbox = sandbox;
-
- p_chdir(sandbox);
- cl_git_pass(p_rename(".gitted", ".git"));
- if (p_access("gitattributes", F_OK) == 0)
- cl_git_pass(p_rename("gitattributes", ".gitattributes"));
- if (p_access("gitignore", F_OK) == 0)
- cl_git_pass(p_rename("gitignore", ".gitignore"));
- p_chdir("..");
-
- cl_git_pass(git_repository_open(&g_repo, sandbox));
-}
-
-static void cleanup_sandbox(void)
-{
- if (g_repo) {
- git_repository_free(g_repo);
- g_repo = NULL;
- }
- if (g_sandbox) {
- cl_fixture_cleanup(g_sandbox);
- g_sandbox = NULL;
- }
-}
-
void test_diff_iterator__initialize(void)
{
/* since we are doing tests with different sandboxes, defer setup
@@ -44,7 +13,7 @@ void test_diff_iterator__initialize(void)
void test_diff_iterator__cleanup(void)
{
- cleanup_sandbox();
+ cl_git_sandbox_cleanup();
}
@@ -60,11 +29,10 @@ static void tree_iterator_test(
git_iterator *i;
const git_index_entry *entry;
int count = 0;
+ git_repository *repo = cl_git_sandbox_init(sandbox);
- setup_sandbox(sandbox);
-
- cl_assert(t = resolve_commit_oid_to_tree(g_repo, treeish));
- cl_git_pass(git_iterator_for_tree(g_repo, t, &i));
+ cl_assert(t = resolve_commit_oid_to_tree(repo, treeish));
+ cl_git_pass(git_iterator_for_tree(repo, t, &i));
cl_git_pass(git_iterator_current(i, &entry));
while (entry != NULL) {
@@ -183,10 +151,9 @@ static void index_iterator_test(
git_iterator *i;
const git_index_entry *entry;
int count = 0;
+ git_repository *repo = cl_git_sandbox_init(sandbox);
- setup_sandbox(sandbox);
-
- cl_git_pass(git_iterator_for_index(g_repo, &i));
+ cl_git_pass(git_iterator_for_index(repo, &i));
cl_git_pass(git_iterator_current(i, &entry));
while (entry != NULL) {
@@ -303,10 +270,9 @@ static void workdir_iterator_test(
git_iterator *i;
const git_index_entry *entry;
int count = 0, count_all = 0;
+ git_repository *repo = cl_git_sandbox_init(sandbox);
- setup_sandbox(sandbox);
-
- cl_git_pass(git_iterator_for_workdir(g_repo, &i));
+ cl_git_pass(git_iterator_for_workdir(repo, &i));
cl_git_pass(git_iterator_current(i, &entry));
while (entry != NULL) {