summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests-clar/checkout/index.c2
-rw-r--r--tests-clar/checkout/tree.c25
-rw-r--r--tests-clar/diff/tree.c8
-rw-r--r--tests-clar/diff/workdir.c149
-rw-r--r--tests-clar/index/tests.c18
-rw-r--r--tests-clar/status/worktree.c5
6 files changed, 55 insertions, 152 deletions
diff --git a/tests-clar/checkout/index.c b/tests-clar/checkout/index.c
index 6dfa95dd3..33506a669 100644
--- a/tests-clar/checkout/index.c
+++ b/tests-clar/checkout/index.c
@@ -497,7 +497,7 @@ void test_checkout_index__issue_1397(void)
g_repo = cl_git_sandbox_init("issue_1397");
- set_core_autocrlf_to(true);
+ cl_repo_set_bool(g_repo, "core.autocrlf", true);
opts.checkout_strategy = GIT_CHECKOUT_FORCE;
diff --git a/tests-clar/checkout/tree.c b/tests-clar/checkout/tree.c
index 0f0ac6982..2a8fbc457 100644
--- a/tests-clar/checkout/tree.c
+++ b/tests-clar/checkout/tree.c
@@ -485,33 +485,22 @@ void test_checkout_tree__can_checkout_with_last_workdir_item_missing(void)
void test_checkout_tree__issue_1397(void)
{
git_checkout_opts opts = GIT_CHECKOUT_OPTS_INIT;
- git_config *cfg;
const char *partial_oid = "8a7ef04";
- size_t len = strlen(partial_oid);
- git_oid oid;
- git_object *obj = NULL;
- git_tree *tree = NULL;
+ git_object *tree = NULL;
+
+ test_checkout_tree__cleanup(); /* cleanup default checkout */
g_repo = cl_git_sandbox_init("issue_1397");
- cl_git_pass(git_repository_config(&cfg, g_repo));
- cl_git_pass(git_config_set_bool(cfg, "core.autocrlf", true));
- git_config_free(cfg);
+ cl_repo_set_bool(g_repo, "core.autocrlf", true);
- if (git_oid_fromstrn(&oid, partial_oid, len) == 0)
- git_object_lookup_prefix(&obj, g_repo, &oid, len, GIT_OBJ_ANY);
- cl_assert(obj);
- cl_assert(git_object_type(obj) == GIT_OBJ_COMMIT);
- cl_git_pass(git_commit_tree(&tree, (git_commit *)obj));
- git_object_free(obj);
+ cl_git_pass(git_revparse_single(&tree, g_repo, partial_oid));
opts.checkout_strategy = GIT_CHECKOUT_FORCE;
- cl_assert(tree != NULL);
-
- git_checkout_tree(g_repo, (git_object *)tree, &opts);
+ cl_git_pass(git_checkout_tree(g_repo, tree, &opts));
test_file_contents("./issue_1397/crlf_file.txt", "first line\r\nsecond line\r\nboth with crlf");
- git_tree_free(tree);
+ git_object_free(tree);
}
diff --git a/tests-clar/diff/tree.c b/tests-clar/diff/tree.c
index 06e649979..850feefde 100644
--- a/tests-clar/diff/tree.c
+++ b/tests-clar/diff/tree.c
@@ -434,13 +434,11 @@ void test_diff_tree__regular_blob_mode_changed_to_executable_file(void)
void test_diff_tree__issue_1397(void)
{
- // this test shows, that it is not needed
- git_config *cfg;
+ /* this test shows that it is not needed */
+
g_repo = cl_git_sandbox_init("issue_1397");
- cl_git_pass(git_repository_config(&cfg, g_repo));
- cl_git_pass(git_config_set_bool(cfg, "core.autocrlf", true));
- git_config_free(cfg);
+ cl_repo_set_bool(g_repo, "core.autocrlf", true);
cl_assert((a = resolve_commit_oid_to_tree(g_repo, "8a7ef04")) != NULL);
cl_assert((b = resolve_commit_oid_to_tree(g_repo, "7f483a7")) != NULL);
diff --git a/tests-clar/diff/workdir.c b/tests-clar/diff/workdir.c
index 7e66671b2..f67f09ae8 100644
--- a/tests-clar/diff/workdir.c
+++ b/tests-clar/diff/workdir.c
@@ -1085,112 +1085,66 @@ void test_diff_workdir__can_diff_empty_file(void)
git_diff_list_free(diff);
}
-static void set_config_entry_to(const char *entry_name, bool value)
-{
- git_config *cfg;
-
- cl_git_pass(git_repository_config(&cfg, g_repo));
- cl_git_pass(git_config_set_bool(cfg, entry_name, value));
-
- git_config_free(cfg);
-}
-
-static void set_core_autocrlf_to(bool value)
-{
- set_config_entry_to("core.autocrlf", value);
-}
-
void test_diff_workdir__to_index_issue_1397(void)
{
git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
git_diff_list *diff = NULL;
diff_expects exp;
- int use_iterator;
g_repo = cl_git_sandbox_init("issue_1397");
- set_core_autocrlf_to(true);
+ cl_repo_set_bool(g_repo, "core.autocrlf", true);
opts.context_lines = 3;
opts.interhunk_lines = 1;
cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, NULL, &opts));
- for (use_iterator = 0; use_iterator <= 1; use_iterator++) {
- memset(&exp, 0, sizeof(exp));
-
- if (use_iterator)
- cl_git_pass(diff_foreach_via_iterator(
- diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- else
- cl_git_pass(git_diff_foreach(
- diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
-
- cl_assert_equal_i(0, exp.files);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_ADDED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_DELETED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_MODIFIED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_IGNORED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_UNTRACKED]);
-
- cl_assert_equal_i(0, exp.hunks);
+ memset(&exp, 0, sizeof(exp));
+ cl_git_pass(git_diff_foreach(
+ diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- cl_assert_equal_i(0, exp.lines);
- cl_assert_equal_i(0, exp.line_ctxt);
- cl_assert_equal_i(0, exp.line_adds);
- cl_assert_equal_i(0, exp.line_dels);
- }
+ cl_assert_equal_i(0, exp.files);
+ cl_assert_equal_i(0, exp.hunks);
+ cl_assert_equal_i(0, exp.lines);
git_diff_list_free(diff);
diff = NULL;
- memset(&exp, 0, sizeof(exp));
- cl_git_rewritefile("issue_1397/crlf_file.txt", "first line\r\nsecond line modified\r\nboth with crlf");
+ cl_git_rewritefile("issue_1397/crlf_file.txt",
+ "first line\r\nsecond line modified\r\nboth with crlf");
cl_git_pass(git_diff_index_to_workdir(&diff, g_repo, NULL, &opts));
- for (use_iterator = 0; use_iterator <= 1; use_iterator++) {
- memset(&exp, 0, sizeof(exp));
-
- if (use_iterator)
- cl_git_pass(diff_foreach_via_iterator(
- diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- else
- cl_git_pass(git_diff_foreach(
- diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
+ memset(&exp, 0, sizeof(exp));
+ cl_git_pass(git_diff_foreach(
+ diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- cl_assert_equal_i(1, exp.files);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_ADDED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_DELETED]);
- cl_assert_equal_i(1, exp.file_status[GIT_DELTA_MODIFIED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_IGNORED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_UNTRACKED]);
+ cl_assert_equal_i(1, exp.files);
+ cl_assert_equal_i(1, exp.file_status[GIT_DELTA_MODIFIED]);
- cl_assert_equal_i(1, exp.hunks);
+ cl_assert_equal_i(1, exp.hunks);
- cl_assert_equal_i(5, exp.lines);
- cl_assert_equal_i(3, exp.line_ctxt);
- cl_assert_equal_i(1, exp.line_adds);
- cl_assert_equal_i(1, exp.line_dels);
- }
+ cl_assert_equal_i(5, exp.lines);
+ cl_assert_equal_i(3, exp.line_ctxt);
+ cl_assert_equal_i(1, exp.line_adds);
+ cl_assert_equal_i(1, exp.line_dels);
git_diff_list_free(diff);
}
void test_diff_workdir__to_tree_issue_1397(void)
{
- /* grabbed a couple of commit oids from the history of the attr repo */
- const char *a_commit = "51883ad"; /* the current HEAD */
+ const char *a_commit = "7f483a738"; /* the current HEAD */
git_tree *a;
git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
git_diff_list *diff = NULL;
git_diff_list *diff2 = NULL;
diff_expects exp;
- int use_iterator;
g_repo = cl_git_sandbox_init("issue_1397");
- set_core_autocrlf_to(true);
+ cl_repo_set_bool(g_repo, "core.autocrlf", true);
a = resolve_commit_oid_to_tree(g_repo, a_commit);
@@ -1199,66 +1153,29 @@ void test_diff_workdir__to_tree_issue_1397(void)
cl_git_pass(git_diff_tree_to_workdir(&diff, g_repo, a, &opts));
- for (use_iterator = 0; use_iterator <= 1; use_iterator++) {
- memset(&exp, 0, sizeof(exp));
-
- if (use_iterator)
- cl_git_pass(diff_foreach_via_iterator(
- diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- else
- cl_git_pass(git_diff_foreach(
- diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
-
- cl_assert_equal_i(0, exp.files);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_ADDED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_DELETED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_MODIFIED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_IGNORED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_UNTRACKED]);
- }
+ memset(&exp, 0, sizeof(exp));
+ cl_git_pass(git_diff_foreach(
+ diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- /* Since there is no git diff equivalent, let's just assume that the
- * text diffs produced by git_diff_foreach are accurate here. We will
- * do more apples-to-apples test comparison below.
- */
+ cl_assert_equal_i(0, exp.files);
+ cl_assert_equal_i(0, exp.hunks);
+ cl_assert_equal_i(0, exp.lines);
git_diff_list_free(diff);
diff = NULL;
- memset(&exp, 0, sizeof(exp));
- /* This is a compatible emulation of "git diff <sha>" which looks like
- * a workdir to tree diff (even though it is not really). This is what
- * you would get from "git diff --name-status 26a125ee1bf"
- */
cl_git_pass(git_diff_tree_to_index(&diff, g_repo, a, NULL, &opts));
cl_git_pass(git_diff_index_to_workdir(&diff2, g_repo, NULL, &opts));
cl_git_pass(git_diff_merge(diff, diff2));
git_diff_list_free(diff2);
- for (use_iterator = 0; use_iterator <= 1; use_iterator++) {
- memset(&exp, 0, sizeof(exp));
-
- if (use_iterator)
- cl_git_pass(diff_foreach_via_iterator(
- diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- else
- cl_git_pass(git_diff_foreach(
- diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
-
- cl_assert_equal_i(0, exp.files);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_ADDED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_DELETED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_MODIFIED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_IGNORED]);
- cl_assert_equal_i(0, exp.file_status[GIT_DELTA_UNTRACKED]);
-
- cl_assert_equal_i(0, exp.hunks);
+ memset(&exp, 0, sizeof(exp));
+ cl_git_pass(git_diff_foreach(
+ diff, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
- cl_assert_equal_i(0, exp.lines);
- cl_assert_equal_i(0, exp.line_ctxt);
- cl_assert_equal_i(0, exp.line_adds);
- cl_assert_equal_i(0, exp.line_dels);
- }
+ cl_assert_equal_i(0, exp.files);
+ cl_assert_equal_i(0, exp.hunks);
+ cl_assert_equal_i(0, exp.lines);
git_diff_list_free(diff);
git_tree_free(a);
diff --git a/tests-clar/index/tests.c b/tests-clar/index/tests.c
index 49defd03f..88e374e6e 100644
--- a/tests-clar/index/tests.c
+++ b/tests-clar/index/tests.c
@@ -251,21 +251,24 @@ void test_index_tests__add(void)
git_repository_free(repo);
}
+static void cleanup_1397(void *opaque)
+{
+ GIT_UNUSED(opaque);
+ cl_git_sandbox_cleanup();
+}
+
void test_index_tests__add_issue_1397(void)
{
git_index *index;
- git_config *cfg;
git_repository *repo;
const git_index_entry *entry;
git_oid id1;
- cl_set_cleanup(&cleanup_myrepo, NULL);
+ cl_set_cleanup(&cleanup_1397, NULL);
repo = cl_git_sandbox_init("issue_1397");
- cl_git_pass(git_repository_config(&cfg, repo));
- cl_git_pass(git_config_set_bool(cfg, "core.autocrlf", true));
- git_config_free(cfg);
+ cl_repo_set_bool(repo, "core.autocrlf", true);
/* Ensure we're the only guy in the room */
cl_git_pass(git_repository_index(&index, repo));
@@ -278,17 +281,16 @@ void test_index_tests__add_issue_1397(void)
/* Make sure the initial SHA-1 is correct */
cl_assert((entry = git_index_get_bypath(index, "crlf_file.txt", 0)) != NULL);
- cl_assert(git_oid_cmp(&id1, &entry->oid) == 0);
+ cl_assert_(git_oid_cmp(&id1, &entry->oid) == 0, "first oid check");
/* Update the index */
cl_git_pass(git_index_add_bypath(index, "crlf_file.txt"));
/* Check the new SHA-1 */
cl_assert((entry = git_index_get_bypath(index, "crlf_file.txt", 0)) != NULL);
- cl_assert(git_oid_cmp(&id1, &entry->oid) == 0);
+ cl_assert_(git_oid_cmp(&id1, &entry->oid) == 0, "second oid check");
git_index_free(index);
- git_repository_free(repo);
}
void test_index_tests__add_bypath_to_a_bare_repository_returns_EBAREPO(void)
diff --git a/tests-clar/status/worktree.c b/tests-clar/status/worktree.c
index 61f0982cd..a9b8a12ed 100644
--- a/tests-clar/status/worktree.c
+++ b/tests-clar/status/worktree.c
@@ -544,12 +544,9 @@ void test_status_worktree__line_endings_dont_count_as_changes_with_autocrlf(void
void test_status_worktree__line_endings_dont_count_as_changes_with_autocrlf_issue_1397(void)
{
git_repository *repo = cl_git_sandbox_init("issue_1397");
- git_config *config;
unsigned int status;
- cl_git_pass(git_repository_config(&config, repo));
- cl_git_pass(git_config_set_bool(config, "core.autocrlf", true));
- git_config_free(config);
+ cl_repo_set_bool(repo, "core.autocrlf", true);
cl_git_pass(git_status_file(&status, repo, "crlf_file.txt"));