From 71966e2f1bdfb75b7e57942d572ea089ce32e463 Mon Sep 17 00:00:00 2001 From: Russell Belfer Date: Mon, 8 Oct 2012 15:18:30 -0700 Subject: [PATCH] Extend diff helpers for tests a little --- tests-clar/diff/diff_helpers.c | 31 ++++++++++++++++++++++++++++--- tests-clar/diff/diff_helpers.h | 4 ++++ tests-clar/diff/tree.c | 18 +++++++++--------- 3 files changed, 41 insertions(+), 12 deletions(-) diff --git a/tests-clar/diff/diff_helpers.c b/tests-clar/diff/diff_helpers.c index b4c68769e..de0e7e074 100644 --- a/tests-clar/diff/diff_helpers.c +++ b/tests-clar/diff/diff_helpers.c @@ -30,10 +30,13 @@ int diff_file_fn( GIT_UNUSED(progress); - if (delta->binary) - e->at_least_one_of_them_is_binary = true; - e->files++; + + if (delta->binary) { + e->at_least_one_of_them_is_binary = true; + e->files_binary++; + } + switch (delta->status) { case GIT_DELTA_ADDED: e->file_adds++; break; case GIT_DELTA_DELETED: e->file_dels++; break; @@ -180,3 +183,25 @@ abort: giterr_clear(); return GIT_EUSER; } + +static int diff_print_cb( + void *cb_data, + 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) +{ + GIT_UNUSED(cb_data); + GIT_UNUSED(delta); + GIT_UNUSED(range); + GIT_UNUSED(line_origin); + GIT_UNUSED(content_len); + fputs(content, (FILE *)cb_data); + return 0; +} + +void diff_print(FILE *fp, git_diff_list *diff) +{ + cl_git_pass(git_diff_print_patch(diff, fp ? fp : stderr, diff_print_cb)); +} diff --git a/tests-clar/diff/diff_helpers.h b/tests-clar/diff/diff_helpers.h index 7984294a2..629130934 100644 --- a/tests-clar/diff/diff_helpers.h +++ b/tests-clar/diff/diff_helpers.h @@ -6,6 +6,8 @@ extern git_tree *resolve_commit_oid_to_tree( typedef struct { int files; + int files_binary; + int file_adds; int file_dels; int file_mods; @@ -51,3 +53,5 @@ extern int diff_foreach_via_iterator( git_diff_file_fn file_cb, git_diff_hunk_fn hunk_cb, git_diff_data_fn line_cb); + +extern void diff_print(FILE *fp, git_diff_list *diff); diff --git a/tests-clar/diff/tree.c b/tests-clar/diff/tree.c index d8af3acf3..c5a0e626e 100644 --- a/tests-clar/diff/tree.c +++ b/tests-clar/diff/tree.c @@ -113,16 +113,16 @@ void test_diff_tree__options(void) */ diff_expects test_expects[] = { /* a vs b tests */ - { 5, 3, 0, 2, 0, 0, 0, 4, 0, 0, 51, 2, 46, 3 }, - { 5, 3, 0, 2, 0, 0, 0, 4, 0, 0, 53, 4, 46, 3 }, - { 5, 0, 3, 2, 0, 0, 0, 4, 0, 0, 52, 3, 3, 46 }, - { 5, 3, 0, 2, 0, 0, 0, 5, 0, 0, 54, 3, 47, 4 }, + { 5, 0, 3, 0, 2, 0, 0, 0, 4, 0, 0, 51, 2, 46, 3 }, + { 5, 0, 3, 0, 2, 0, 0, 0, 4, 0, 0, 53, 4, 46, 3 }, + { 5, 0, 0, 3, 2, 0, 0, 0, 4, 0, 0, 52, 3, 3, 46 }, + { 5, 0, 3, 0, 2, 0, 0, 0, 5, 0, 0, 54, 3, 47, 4 }, /* c vs d tests */ - { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 22, 9, 10, 3 }, - { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 19, 12, 7, 0 }, - { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 20, 11, 8, 1 }, - { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 20, 11, 8, 1 }, - { 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 18, 11, 0, 7 }, + { 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 22, 9, 10, 3 }, + { 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 19, 12, 7, 0 }, + { 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 20, 11, 8, 1 }, + { 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 20, 11, 8, 1 }, + { 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 18, 11, 0, 7 }, { 0 }, }; diff_expects *expected;