mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-09 20:29:27 +00:00
diff: refactor git_diff_tree_to_tree() tests
This commit is contained in:
parent
f093cd62c4
commit
7e8580452c
@ -2,13 +2,28 @@
|
|||||||
#include "diff_helpers.h"
|
#include "diff_helpers.h"
|
||||||
|
|
||||||
static git_repository *g_repo = NULL;
|
static git_repository *g_repo = NULL;
|
||||||
|
static git_diff_options opts;
|
||||||
|
static git_diff_list *diff;
|
||||||
|
static git_tree *a, *b;
|
||||||
|
static diff_expects exp;
|
||||||
|
|
||||||
void test_diff_tree__initialize(void)
|
void test_diff_tree__initialize(void)
|
||||||
{
|
{
|
||||||
|
GIT_INIT_STRUCTURE(&opts, GIT_DIFF_OPTIONS_VERSION);
|
||||||
|
|
||||||
|
memset(&exp, 0, sizeof(exp));
|
||||||
|
|
||||||
|
diff = NULL;
|
||||||
|
a = NULL;
|
||||||
|
b = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_diff_tree__cleanup(void)
|
void test_diff_tree__cleanup(void)
|
||||||
{
|
{
|
||||||
|
git_diff_list_free(diff);
|
||||||
|
git_tree_free(a);
|
||||||
|
git_tree_free(b);
|
||||||
|
|
||||||
cl_git_sandbox_cleanup();
|
cl_git_sandbox_cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -18,10 +33,7 @@ void test_diff_tree__0(void)
|
|||||||
const char *a_commit = "605812a";
|
const char *a_commit = "605812a";
|
||||||
const char *b_commit = "370fe9ec22";
|
const char *b_commit = "370fe9ec22";
|
||||||
const char *c_commit = "f5b0af1fb4f5c";
|
const char *c_commit = "f5b0af1fb4f5c";
|
||||||
git_tree *a, *b, *c;
|
git_tree *c;
|
||||||
git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
|
|
||||||
git_diff_list *diff = NULL;
|
|
||||||
diff_expects exp;
|
|
||||||
|
|
||||||
g_repo = cl_git_sandbox_init("attr");
|
g_repo = cl_git_sandbox_init("attr");
|
||||||
|
|
||||||
@ -32,7 +44,6 @@ void test_diff_tree__0(void)
|
|||||||
opts.context_lines = 1;
|
opts.context_lines = 1;
|
||||||
opts.interhunk_lines = 1;
|
opts.interhunk_lines = 1;
|
||||||
|
|
||||||
memset(&exp, 0, sizeof(exp));
|
|
||||||
|
|
||||||
cl_git_pass(git_diff_tree_to_tree(&diff, g_repo, a, b, &opts));
|
cl_git_pass(git_diff_tree_to_tree(&diff, g_repo, a, b, &opts));
|
||||||
|
|
||||||
@ -73,10 +84,6 @@ void test_diff_tree__0(void)
|
|||||||
cl_assert_equal_i(1, exp.line_adds);
|
cl_assert_equal_i(1, exp.line_adds);
|
||||||
cl_assert_equal_i(7 + 14, exp.line_dels);
|
cl_assert_equal_i(7 + 14, exp.line_dels);
|
||||||
|
|
||||||
git_diff_list_free(diff);
|
|
||||||
|
|
||||||
git_tree_free(a);
|
|
||||||
git_tree_free(b);
|
|
||||||
git_tree_free(c);
|
git_tree_free(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,9 +94,7 @@ void test_diff_tree__options(void)
|
|||||||
const char *b_commit = "605812ab7fe421fdd";
|
const char *b_commit = "605812ab7fe421fdd";
|
||||||
const char *c_commit = "f5b0af1fb4f5";
|
const char *c_commit = "f5b0af1fb4f5";
|
||||||
const char *d_commit = "a97cc019851";
|
const char *d_commit = "a97cc019851";
|
||||||
git_tree *a, *b, *c, *d;
|
git_tree *c, *d;
|
||||||
git_diff_options opts = {0};
|
|
||||||
git_diff_list *diff = NULL;
|
|
||||||
diff_expects actual;
|
diff_expects actual;
|
||||||
int test_ab_or_cd[] = { 0, 0, 0, 0, 1, 1, 1, 1, 1 };
|
int test_ab_or_cd[] = { 0, 0, 0, 0, 1, 1, 1, 1, 1 };
|
||||||
git_diff_options test_options[] = {
|
git_diff_options test_options[] = {
|
||||||
@ -164,8 +169,6 @@ void test_diff_tree__options(void)
|
|||||||
diff = NULL;
|
diff = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
git_tree_free(a);
|
|
||||||
git_tree_free(b);
|
|
||||||
git_tree_free(c);
|
git_tree_free(c);
|
||||||
git_tree_free(d);
|
git_tree_free(d);
|
||||||
}
|
}
|
||||||
@ -174,10 +177,6 @@ void test_diff_tree__bare(void)
|
|||||||
{
|
{
|
||||||
const char *a_commit = "8496071c1b46c85";
|
const char *a_commit = "8496071c1b46c85";
|
||||||
const char *b_commit = "be3563ae3f79";
|
const char *b_commit = "be3563ae3f79";
|
||||||
git_tree *a, *b;
|
|
||||||
git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
|
|
||||||
git_diff_list *diff = NULL;
|
|
||||||
diff_expects exp;
|
|
||||||
|
|
||||||
g_repo = cl_git_sandbox_init("testrepo.git");
|
g_repo = cl_git_sandbox_init("testrepo.git");
|
||||||
|
|
||||||
@ -187,8 +186,6 @@ void test_diff_tree__bare(void)
|
|||||||
opts.context_lines = 1;
|
opts.context_lines = 1;
|
||||||
opts.interhunk_lines = 1;
|
opts.interhunk_lines = 1;
|
||||||
|
|
||||||
memset(&exp, 0, sizeof(exp));
|
|
||||||
|
|
||||||
cl_git_pass(git_diff_tree_to_tree(&diff, g_repo, a, b, &opts));
|
cl_git_pass(git_diff_tree_to_tree(&diff, g_repo, a, b, &opts));
|
||||||
|
|
||||||
cl_git_pass(git_diff_foreach(
|
cl_git_pass(git_diff_foreach(
|
||||||
@ -205,10 +202,6 @@ void test_diff_tree__bare(void)
|
|||||||
cl_assert_equal_i(0, exp.line_ctxt);
|
cl_assert_equal_i(0, exp.line_ctxt);
|
||||||
cl_assert_equal_i(3, exp.line_adds);
|
cl_assert_equal_i(3, exp.line_adds);
|
||||||
cl_assert_equal_i(1, exp.line_dels);
|
cl_assert_equal_i(1, exp.line_dels);
|
||||||
|
|
||||||
git_diff_list_free(diff);
|
|
||||||
git_tree_free(a);
|
|
||||||
git_tree_free(b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_diff_tree__merge(void)
|
void test_diff_tree__merge(void)
|
||||||
@ -217,9 +210,8 @@ void test_diff_tree__merge(void)
|
|||||||
const char *a_commit = "605812a";
|
const char *a_commit = "605812a";
|
||||||
const char *b_commit = "370fe9ec22";
|
const char *b_commit = "370fe9ec22";
|
||||||
const char *c_commit = "f5b0af1fb4f5c";
|
const char *c_commit = "f5b0af1fb4f5c";
|
||||||
git_tree *a, *b, *c;
|
git_tree *c;
|
||||||
git_diff_list *diff1 = NULL, *diff2 = NULL;
|
git_diff_list *diff1 = NULL, *diff2 = NULL;
|
||||||
diff_expects exp;
|
|
||||||
|
|
||||||
g_repo = cl_git_sandbox_init("attr");
|
g_repo = cl_git_sandbox_init("attr");
|
||||||
|
|
||||||
@ -231,16 +223,12 @@ void test_diff_tree__merge(void)
|
|||||||
|
|
||||||
cl_git_pass(git_diff_tree_to_tree(&diff2, g_repo, c, b, NULL));
|
cl_git_pass(git_diff_tree_to_tree(&diff2, g_repo, c, b, NULL));
|
||||||
|
|
||||||
git_tree_free(a);
|
|
||||||
git_tree_free(b);
|
|
||||||
git_tree_free(c);
|
git_tree_free(c);
|
||||||
|
|
||||||
cl_git_pass(git_diff_merge(diff1, diff2));
|
cl_git_pass(git_diff_merge(diff1, diff2));
|
||||||
|
|
||||||
git_diff_list_free(diff2);
|
git_diff_list_free(diff2);
|
||||||
|
|
||||||
memset(&exp, 0, sizeof(exp));
|
|
||||||
|
|
||||||
cl_git_pass(git_diff_foreach(
|
cl_git_pass(git_diff_foreach(
|
||||||
diff1, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
|
diff1, diff_file_cb, diff_hunk_cb, diff_line_cb, &exp));
|
||||||
|
|
||||||
@ -263,9 +251,6 @@ void test_diff_tree__larger_hunks(void)
|
|||||||
{
|
{
|
||||||
const char *a_commit = "d70d245ed97ed2aa596dd1af6536e4bfdb047b69";
|
const char *a_commit = "d70d245ed97ed2aa596dd1af6536e4bfdb047b69";
|
||||||
const char *b_commit = "7a9e0b02e63179929fed24f0a3e0f19168114d10";
|
const char *b_commit = "7a9e0b02e63179929fed24f0a3e0f19168114d10";
|
||||||
git_tree *a, *b;
|
|
||||||
git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
|
|
||||||
git_diff_list *diff = NULL;
|
|
||||||
size_t d, num_d, h, num_h, l, num_l, header_len, line_len;
|
size_t d, num_d, h, num_h, l, num_l, header_len, line_len;
|
||||||
const git_diff_delta *delta;
|
const git_diff_delta *delta;
|
||||||
git_diff_patch *patch;
|
git_diff_patch *patch;
|
||||||
@ -312,21 +297,12 @@ void test_diff_tree__larger_hunks(void)
|
|||||||
cl_git_fail(git_diff_get_patch(&patch, &delta, diff, num_d));
|
cl_git_fail(git_diff_get_patch(&patch, &delta, diff, num_d));
|
||||||
|
|
||||||
cl_assert_equal_i(2, (int)num_d);
|
cl_assert_equal_i(2, (int)num_d);
|
||||||
|
|
||||||
git_diff_list_free(diff);
|
|
||||||
diff = NULL;
|
|
||||||
|
|
||||||
git_tree_free(a);
|
|
||||||
git_tree_free(b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_diff_tree__checks_options_version(void)
|
void test_diff_tree__checks_options_version(void)
|
||||||
{
|
{
|
||||||
const char *a_commit = "8496071c1b46c85";
|
const char *a_commit = "8496071c1b46c85";
|
||||||
const char *b_commit = "be3563ae3f79";
|
const char *b_commit = "be3563ae3f79";
|
||||||
git_tree *a, *b;
|
|
||||||
git_diff_options opts = GIT_DIFF_OPTIONS_INIT;
|
|
||||||
git_diff_list *diff = NULL;
|
|
||||||
const git_error *err;
|
const git_error *err;
|
||||||
|
|
||||||
g_repo = cl_git_sandbox_init("testrepo.git");
|
g_repo = cl_git_sandbox_init("testrepo.git");
|
||||||
@ -343,7 +319,4 @@ void test_diff_tree__checks_options_version(void)
|
|||||||
opts.version = 1024;
|
opts.version = 1024;
|
||||||
cl_git_fail(git_diff_tree_to_tree(&diff, g_repo, a, b, &opts));
|
cl_git_fail(git_diff_tree_to_tree(&diff, g_repo, a, b, &opts));
|
||||||
err = giterr_last();
|
err = giterr_last();
|
||||||
|
|
||||||
git_tree_free(a);
|
|
||||||
git_tree_free(b);
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user