summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/blame/blame_helpers.c4
-rw-r--r--tests/blame/blame_helpers.h6
-rw-r--r--tests/blame/simple.c12
-rw-r--r--tests/resources/blametest.git/objects/37/681a80ca21064efd5c3bf2ef41eb3d05a1428bbin0 -> 106 bytes
-rw-r--r--tests/resources/blametest.git/objects/4e/ecfea484f8005d101e547f6bfb07c99e2b114ebin0 -> 163 bytes
-rw-r--r--tests/resources/blametest.git/objects/5a/572e2e94825f54b95417eacaa089d560c5a5e9bin0 -> 324 bytes
-rw-r--r--tests/resources/blametest.git/objects/66/53ff42313eb5c82806f145391b18a9699800c7bin0 -> 160 bytes
-rw-r--r--tests/resources/blametest.git/objects/ad/9cb4eac23df2fe5e1264287a5872ea2a1ff8b2bin0 -> 106 bytes
-rw-r--r--tests/resources/blametest.git/objects/de/9fe35f9906e1994e083cc59c87232bf418795bbin0 -> 331 bytes
-rw-r--r--tests/resources/blametest.git/refs/heads/master2
10 files changed, 17 insertions, 7 deletions
diff --git a/tests/blame/blame_helpers.c b/tests/blame/blame_helpers.c
index b305ba1e3..61e87350c 100644
--- a/tests/blame/blame_helpers.c
+++ b/tests/blame/blame_helpers.c
@@ -4,7 +4,7 @@ void hunk_message(size_t idx, const git_blame_hunk *hunk, const char *fmt, ...)
{
va_list arglist;
- printf("Hunk %"PRIuZ" (line %d +%d): ", idx,
+ printf("Hunk %"PRIuZ" (line %"PRIuZ" +%"PRIuZ"): ", idx,
hunk->final_start_line_number, hunk->lines_in_hunk-1);
va_start(arglist, fmt);
@@ -15,7 +15,7 @@ void hunk_message(size_t idx, const git_blame_hunk *hunk, const char *fmt, ...)
}
void check_blame_hunk_index(git_repository *repo, git_blame *blame, int idx,
- int start_line, int len, char boundary, const char *commit_id, const char *orig_path)
+ size_t start_line, size_t len, char boundary, const char *commit_id, const char *orig_path)
{
char expected[GIT_OID_HEXSZ+1] = {0}, actual[GIT_OID_HEXSZ+1] = {0};
const git_blame_hunk *hunk = git_blame_get_hunk_byindex(blame, idx);
diff --git a/tests/blame/blame_helpers.h b/tests/blame/blame_helpers.h
index 94321a5b5..fd5a35d2c 100644
--- a/tests/blame/blame_helpers.h
+++ b/tests/blame/blame_helpers.h
@@ -7,10 +7,8 @@ void check_blame_hunk_index(
git_repository *repo,
git_blame *blame,
int idx,
- int start_line,
- int len,
+ size_t start_line,
+ size_t len,
char boundary,
const char *commit_id,
const char *orig_path);
-
-
diff --git a/tests/blame/simple.c b/tests/blame/simple.c
index 83e5e056b..30b78168f 100644
--- a/tests/blame/simple.c
+++ b/tests/blame/simple.c
@@ -281,6 +281,18 @@ void test_blame_simple__can_restrict_lines_both(void)
check_blame_hunk_index(g_repo, g_blame, 2, 6, 2, 0, "63d671eb", "b.txt");
}
+void test_blame_simple__can_blame_huge_file(void)
+{
+ git_blame_options opts = GIT_BLAME_OPTIONS_INIT;
+
+ cl_git_pass(git_repository_open(&g_repo, cl_fixture("blametest.git")));
+
+ cl_git_pass(git_blame_file(&g_blame, g_repo, "huge.txt", &opts));
+ cl_assert_equal_i(2, git_blame_get_hunk_count(g_blame));
+ check_blame_hunk_index(g_repo, g_blame, 0, 1, 65536, 0, "4eecfea", "huge.txt");
+ check_blame_hunk_index(g_repo, g_blame, 1, 65537, 1, 0, "6653ff4", "huge.txt");
+}
+
/*
* $ git blame -n branch_file.txt be3563a..HEAD
* orig line no final line no
diff --git a/tests/resources/blametest.git/objects/37/681a80ca21064efd5c3bf2ef41eb3d05a1428b b/tests/resources/blametest.git/objects/37/681a80ca21064efd5c3bf2ef41eb3d05a1428b
new file mode 100644
index 000000000..a6ca0fb71
--- /dev/null
+++ b/tests/resources/blametest.git/objects/37/681a80ca21064efd5c3bf2ef41eb3d05a1428b
Binary files differ
diff --git a/tests/resources/blametest.git/objects/4e/ecfea484f8005d101e547f6bfb07c99e2b114e b/tests/resources/blametest.git/objects/4e/ecfea484f8005d101e547f6bfb07c99e2b114e
new file mode 100644
index 000000000..79e0ada91
--- /dev/null
+++ b/tests/resources/blametest.git/objects/4e/ecfea484f8005d101e547f6bfb07c99e2b114e
Binary files differ
diff --git a/tests/resources/blametest.git/objects/5a/572e2e94825f54b95417eacaa089d560c5a5e9 b/tests/resources/blametest.git/objects/5a/572e2e94825f54b95417eacaa089d560c5a5e9
new file mode 100644
index 000000000..348beab16
--- /dev/null
+++ b/tests/resources/blametest.git/objects/5a/572e2e94825f54b95417eacaa089d560c5a5e9
Binary files differ
diff --git a/tests/resources/blametest.git/objects/66/53ff42313eb5c82806f145391b18a9699800c7 b/tests/resources/blametest.git/objects/66/53ff42313eb5c82806f145391b18a9699800c7
new file mode 100644
index 000000000..1f1140931
--- /dev/null
+++ b/tests/resources/blametest.git/objects/66/53ff42313eb5c82806f145391b18a9699800c7
Binary files differ
diff --git a/tests/resources/blametest.git/objects/ad/9cb4eac23df2fe5e1264287a5872ea2a1ff8b2 b/tests/resources/blametest.git/objects/ad/9cb4eac23df2fe5e1264287a5872ea2a1ff8b2
new file mode 100644
index 000000000..077e65864
--- /dev/null
+++ b/tests/resources/blametest.git/objects/ad/9cb4eac23df2fe5e1264287a5872ea2a1ff8b2
Binary files differ
diff --git a/tests/resources/blametest.git/objects/de/9fe35f9906e1994e083cc59c87232bf418795b b/tests/resources/blametest.git/objects/de/9fe35f9906e1994e083cc59c87232bf418795b
new file mode 100644
index 000000000..11ec90d68
--- /dev/null
+++ b/tests/resources/blametest.git/objects/de/9fe35f9906e1994e083cc59c87232bf418795b
Binary files differ
diff --git a/tests/resources/blametest.git/refs/heads/master b/tests/resources/blametest.git/refs/heads/master
index b763025d8..d1bc4ca6b 100644
--- a/tests/resources/blametest.git/refs/heads/master
+++ b/tests/resources/blametest.git/refs/heads/master
@@ -1 +1 @@
-bc7c5ac2bafe828a68e9d1d460343718d6fbe136
+6653ff42313eb5c82806f145391b18a9699800c7