summaryrefslogtreecommitdiff
path: root/tests/diff
diff options
context:
space:
mode:
authorDenis Laxalde <denis@laxalde.org>2019-10-16 22:11:33 +0200
committerDenis Laxalde <denis@laxalde.org>2019-10-16 22:53:29 +0200
commit11de594f85479e4804b07dc4f7b33cfe9212bea0 (patch)
tree4212d8619ba52d3c8fc52ef7909a221d8f01d3d5 /tests/diff
parent9333fc2af65c13c7e6f8450dc7839f481bb018d8 (diff)
downloadlibgit2-11de594f85479e4804b07dc4f7b33cfe9212bea0.tar.gz
patch_parse: handle patches without extended headers
Extended header lines (especially the "index <hash>..<hash> <mode>") are not required by "git apply" so it import patches. So we allow the from-file/to-file lines (--- a/file\n+++ b/file) to directly follow the git diff header. This fixes #5267.
Diffstat (limited to 'tests/diff')
-rw-r--r--tests/diff/parse.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/diff/parse.c b/tests/diff/parse.c
index 7d9f4b2e5..b004d1e23 100644
--- a/tests/diff/parse.c
+++ b/tests/diff/parse.c
@@ -98,6 +98,16 @@ void test_diff_parse__empty_file(void)
git_diff_free(diff);
}
+void test_diff_parse__no_extended_headers(void)
+{
+ const char *content = PATCH_NO_EXTENDED_HEADERS;
+ git_diff *diff;
+
+ cl_git_pass(git_diff_from_buffer(
+ &diff, content, strlen(content)));
+ git_diff_free(diff);
+}
+
void test_diff_parse__invalid_patches_fails(void)
{
test_parse_invalid_diff(PATCH_CORRUPT_MISSING_NEW_FILE);