summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Aigner <aigner.erik@gmail.com>2019-03-29 12:30:37 +0100
committerPatrick Steinhardt <ps@pks.im>2019-03-29 12:51:49 +0100
commit9d65360b4eaa402c8f137684577d0131a861ce8b (patch)
tree1ec4d0ddc20008ec8d3347c84cda636f722eed43
parentb3497344fa591c98091bf2d68caed6d7edfa8d01 (diff)
downloadlibgit2-9d65360b4eaa402c8f137684577d0131a861ce8b.tar.gz
tests: diff: test parsing diffs with a new file with spaces in its path
Add a test that verifies that we are able to parse patches which add a new file that has spaces in its path.
-rw-r--r--tests/diff/parse.c18
-rw-r--r--tests/patch/patch_common.h9
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/diff/parse.c b/tests/diff/parse.c
index 9cdaa92fb..7cc468245 100644
--- a/tests/diff/parse.c
+++ b/tests/diff/parse.c
@@ -359,3 +359,21 @@ void test_diff_parse__lineinfo(void)
git_patch_free(patch);
git_diff_free(diff);
}
+
+void test_diff_parse__new_file_with_space(void)
+{
+ const char *content = PATCH_ORIGINAL_NEW_FILE_WITH_SPACE;
+ git_patch *patch;
+ git_diff *diff;
+
+ cl_git_pass(git_diff_from_buffer(&diff, content, strlen(content)));
+ cl_git_pass(git_patch_from_diff((git_patch **) &patch, diff, 0));
+
+ cl_assert_equal_p(patch->diff_opts.old_prefix, NULL);
+ cl_assert_equal_p(patch->delta->old_file.path, NULL);
+ cl_assert_equal_s(patch->diff_opts.new_prefix, "b/");
+ cl_assert_equal_s(patch->delta->new_file.path, "sp ace.txt");
+
+ git_patch_free(patch);
+ git_diff_free(diff);
+}
diff --git a/tests/patch/patch_common.h b/tests/patch/patch_common.h
index 3f2668ddc..75aab4453 100644
--- a/tests/patch/patch_common.h
+++ b/tests/patch/patch_common.h
@@ -841,3 +841,12 @@
"diff --git a/binary.bin b/binary.bin\n" \
"index 27184d9..7c94f9e 100644\n" \
"Binary files a/binary.bin and b/binary.bin differ\n"
+
+#define PATCH_ORIGINAL_NEW_FILE_WITH_SPACE \
+ "diff --git a/sp ace.txt b/sp ace.txt\n" \
+ "new file mode 100644\n" \
+ "index 000000000..789819226\n" \
+ "--- /dev/null\n" \
+ "+++ b/sp ace.txt\n" \
+ "@@ -0,0 +1 @@\n" \
+ "+a\n"