summaryrefslogtreecommitdiff
path: root/tests-clar/diff/diff_helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests-clar/diff/diff_helpers.c')
-rw-r--r--tests-clar/diff/diff_helpers.c220
1 files changed, 0 insertions, 220 deletions
diff --git a/tests-clar/diff/diff_helpers.c b/tests-clar/diff/diff_helpers.c
deleted file mode 100644
index 4e23792a6..000000000
--- a/tests-clar/diff/diff_helpers.c
+++ /dev/null
@@ -1,220 +0,0 @@
-#include "clar_libgit2.h"
-#include "diff_helpers.h"
-
-git_tree *resolve_commit_oid_to_tree(
- git_repository *repo,
- const char *partial_oid)
-{
- size_t len = strlen(partial_oid);
- git_oid oid;
- git_object *obj = NULL;
- git_tree *tree = NULL;
-
- if (git_oid_fromstrn(&oid, partial_oid, len) == 0)
- git_object_lookup_prefix(&obj, repo, &oid, len, GIT_OBJ_ANY);
- cl_assert(obj);
- if (git_object_type(obj) == GIT_OBJ_TREE)
- return (git_tree *)obj;
- cl_assert(git_object_type(obj) == GIT_OBJ_COMMIT);
- cl_git_pass(git_commit_tree(&tree, (git_commit *)obj));
- git_object_free(obj);
- return tree;
-}
-
-int diff_file_cb(
- const git_diff_delta *delta,
- float progress,
- void *payload)
-{
- diff_expects *e = payload;
-
- if (e->debug)
- fprintf(stderr, "%c %s (%.3f)\n",
- git_diff_status_char(delta->status),
- delta->old_file.path, progress);
-
- if (e->names)
- cl_assert_equal_s(e->names[e->files], delta->old_file.path);
- if (e->statuses)
- cl_assert_equal_i(e->statuses[e->files], (int)delta->status);
-
- e->files++;
-
- if ((delta->flags & GIT_DIFF_FLAG_BINARY) != 0)
- e->files_binary++;
-
- cl_assert(delta->status <= GIT_DELTA_TYPECHANGE);
-
- e->file_status[delta->status] += 1;
-
- return 0;
-}
-
-int diff_print_file_cb(
- const git_diff_delta *delta,
- float progress,
- void *payload)
-{
- fprintf(stderr, "%c %s\n",
- git_diff_status_char(delta->status), delta->old_file.path);
- return diff_file_cb(delta, progress, payload);
-}
-
-int diff_hunk_cb(
- const git_diff_delta *delta,
- const git_diff_range *range,
- const char *header,
- size_t header_len,
- void *payload)
-{
- diff_expects *e = payload;
-
- GIT_UNUSED(delta);
- GIT_UNUSED(header);
- GIT_UNUSED(header_len);
-
- e->hunks++;
- e->hunk_old_lines += range->old_lines;
- e->hunk_new_lines += range->new_lines;
- return 0;
-}
-
-int diff_line_cb(
- const git_diff_delta *delta,
- const git_diff_range *range,
- char line_origin,
- const char *content,
- size_t content_len,
- void *payload)
-{
- diff_expects *e = payload;
-
- GIT_UNUSED(delta);
- GIT_UNUSED(range);
- GIT_UNUSED(content);
- GIT_UNUSED(content_len);
-
- e->lines++;
- switch (line_origin) {
- case GIT_DIFF_LINE_CONTEXT:
- case GIT_DIFF_LINE_CONTEXT_EOFNL: /* techically not a line */
- e->line_ctxt++;
- break;
- case GIT_DIFF_LINE_ADDITION:
- case GIT_DIFF_LINE_ADD_EOFNL: /* technically not a line add */
- e->line_adds++;
- break;
- case GIT_DIFF_LINE_DELETION:
- case GIT_DIFF_LINE_DEL_EOFNL: /* technically not a line delete */
- e->line_dels++;
- break;
- default:
- break;
- }
- return 0;
-}
-
-int diff_foreach_via_iterator(
- git_diff_list *diff,
- git_diff_file_cb file_cb,
- git_diff_hunk_cb hunk_cb,
- git_diff_data_cb line_cb,
- void *data)
-{
- size_t d, num_d = git_diff_num_deltas(diff);
-
- for (d = 0; d < num_d; ++d) {
- git_diff_patch *patch;
- const git_diff_delta *delta;
- size_t h, num_h;
-
- cl_git_pass(git_diff_get_patch(&patch, &delta, diff, d));
- cl_assert(delta);
-
- /* call file_cb for this file */
- if (file_cb != NULL && file_cb(delta, (float)d / num_d, data) != 0) {
- git_diff_patch_free(patch);
- goto abort;
- }
-
- /* if there are no changes, then the patch will be NULL */
- if (!patch) {
- cl_assert(delta->status == GIT_DELTA_UNMODIFIED ||
- (delta->flags & GIT_DIFF_FLAG_BINARY) != 0);
- continue;
- }
-
- if (!hunk_cb && !line_cb) {
- git_diff_patch_free(patch);
- continue;
- }
-
- num_h = git_diff_patch_num_hunks(patch);
-
- for (h = 0; h < num_h; h++) {
- const git_diff_range *range;
- const char *hdr;
- size_t hdr_len, l, num_l;
-
- cl_git_pass(git_diff_patch_get_hunk(
- &range, &hdr, &hdr_len, &num_l, patch, h));
-
- if (hunk_cb && hunk_cb(delta, range, hdr, hdr_len, data) != 0) {
- git_diff_patch_free(patch);
- goto abort;
- }
-
- for (l = 0; l < num_l; ++l) {
- char origin;
- const char *line;
- size_t line_len;
- int old_lineno, new_lineno;
-
- cl_git_pass(git_diff_patch_get_line_in_hunk(
- &origin, &line, &line_len, &old_lineno, &new_lineno,
- patch, h, l));
-
- if (line_cb &&
- line_cb(delta, range, origin, line, line_len, data) != 0) {
- git_diff_patch_free(patch);
- goto abort;
- }
- }
- }
-
- git_diff_patch_free(patch);
- }
-
- return 0;
-
-abort:
- giterr_clear();
- return GIT_EUSER;
-}
-
-static int diff_print_cb(
- const git_diff_delta *delta,
- const git_diff_range *range,
- char line_origin, /**< GIT_DIFF_LINE_... value from above */
- const char *content,
- size_t content_len,
- void *payload)
-{
- GIT_UNUSED(payload);
- GIT_UNUSED(delta);
- GIT_UNUSED(range);
- GIT_UNUSED(line_origin);
- GIT_UNUSED(content_len);
- fputs(content, (FILE *)payload);
- return 0;
-}
-
-void diff_print(FILE *fp, git_diff_list *diff)
-{
- cl_git_pass(git_diff_print_patch(diff, diff_print_cb, fp ? fp : stderr));
-}
-
-void diff_print_raw(FILE *fp, git_diff_list *diff)
-{
- cl_git_pass(git_diff_print_raw(diff, diff_print_cb, fp ? fp : stderr));
-}