Extend diff helpers for tests a little

This commit is contained in:
Russell Belfer 2012-10-08 15:18:30 -07:00
parent dfbff793b8
commit 71966e2f1b
3 changed files with 41 additions and 12 deletions

View File

@ -30,10 +30,13 @@ int diff_file_fn(
GIT_UNUSED(progress); GIT_UNUSED(progress);
if (delta->binary)
e->at_least_one_of_them_is_binary = true;
e->files++; e->files++;
if (delta->binary) {
e->at_least_one_of_them_is_binary = true;
e->files_binary++;
}
switch (delta->status) { switch (delta->status) {
case GIT_DELTA_ADDED: e->file_adds++; break; case GIT_DELTA_ADDED: e->file_adds++; break;
case GIT_DELTA_DELETED: e->file_dels++; break; case GIT_DELTA_DELETED: e->file_dels++; break;
@ -180,3 +183,25 @@ abort:
giterr_clear(); giterr_clear();
return GIT_EUSER; 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));
}

View File

@ -6,6 +6,8 @@ extern git_tree *resolve_commit_oid_to_tree(
typedef struct { typedef struct {
int files; int files;
int files_binary;
int file_adds; int file_adds;
int file_dels; int file_dels;
int file_mods; int file_mods;
@ -51,3 +53,5 @@ extern int diff_foreach_via_iterator(
git_diff_file_fn file_cb, git_diff_file_fn file_cb,
git_diff_hunk_fn hunk_cb, git_diff_hunk_fn hunk_cb,
git_diff_data_fn line_cb); git_diff_data_fn line_cb);
extern void diff_print(FILE *fp, git_diff_list *diff);

View File

@ -113,16 +113,16 @@ void test_diff_tree__options(void)
*/ */
diff_expects test_expects[] = { diff_expects test_expects[] = {
/* a vs b tests */ /* a vs b tests */
{ 5, 3, 0, 2, 0, 0, 0, 4, 0, 0, 51, 2, 46, 3 }, { 5, 0, 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, 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, 0, 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, 5, 0, 0, 54, 3, 47, 4 },
/* c vs d tests */ /* c vs d tests */
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 22, 9, 10, 3 }, { 1, 0, 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, 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, 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, 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, 18, 11, 0, 7 },
{ 0 }, { 0 },
}; };
diff_expects *expected; diff_expects *expected;