diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2018-11-05 15:49:11 +0000 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2018-11-05 16:13:37 +0000 |
commit | 4e746d80d229a77b08c5689a64d880bde5fd960f (patch) | |
tree | 06e90a656ded076db5baabf9218ae421ce674d9e | |
parent | f8b9493b521494f0fd928bf4708abd7450fcea44 (diff) | |
download | libgit2-4e746d80d229a77b08c5689a64d880bde5fd960f.tar.gz |
test: ensure applying a patch can't delete a file twiceethomson/apply
-rw-r--r-- | tests/apply/apply_helpers.h | 34 | ||||
-rw-r--r-- | tests/apply/both.c | 11 |
2 files changed, 45 insertions, 0 deletions
diff --git a/tests/apply/apply_helpers.h b/tests/apply/apply_helpers.h index 9cc9e4439..81563351e 100644 --- a/tests/apply/apply_helpers.h +++ b/tests/apply/apply_helpers.h @@ -419,6 +419,40 @@ "@@ -0,0 +1 @@\n" \ "+New file.\n" \ +#define DIFF_REMOVE_FILE_TWICE \ + "diff --git a/asparagus.txt b/asparagus.txt\n" \ + "deleted file mode 100644\n" \ + "index f516580..0000000\n" \ + "--- a/asparagus.txt\n" \ + "+++ /dev/null\n" \ + "@@ -1,10 +0,0 @@\n" \ + "-ASPARAGUS SOUP!\n" \ + "-\n" \ + "-Take four large bunches of asparagus, scrape it nicely, cut off one inch\n" \ + "-of the tops, and lay them in water, chop the stalks and put them on the\n" \ + "-fire with a piece of bacon, a large onion cut up, and pepper and salt;\n" \ + "-add two quarts of water, boil them till the stalks are quite soft, then\n" \ + "-pulp them through a sieve, and strain the water to it, which must be put\n" \ + "-back in the pot; put into it a chicken cut up, with the tops of\n" \ + "-asparagus which had been laid by, boil it until these last articles are\n" \ + "-sufficiently done, thicken with flour, butter and milk, and serve it up.\n" \ + "diff --git a/asparagus.txt b/asparagus.txt\n" \ + "deleted file mode 100644\n" \ + "index f516580..0000000\n" \ + "--- a/asparagus.txt\n" \ + "+++ /dev/null\n" \ + "@@ -1,10 +0,0 @@\n" \ + "-ASPARAGUS SOUP!\n" \ + "-\n" \ + "-Take four large bunches of asparagus, scrape it nicely, cut off one inch\n" \ + "-of the tops, and lay them in water, chop the stalks and put them on the\n" \ + "-fire with a piece of bacon, a large onion cut up, and pepper and salt;\n" \ + "-add two quarts of water, boil them till the stalks are quite soft, then\n" \ + "-pulp them through a sieve, and strain the water to it, which must be put\n" \ + "-back in the pot; put into it a chicken cut up, with the tops of\n" \ + "-asparagus which had been laid by, boil it until these last articles are\n" \ + "-sufficiently done, thicken with flour, butter and milk, and serve it up.\n" + struct iterator_compare_data { struct merge_index_entry *expected; size_t cnt; diff --git a/tests/apply/both.c b/tests/apply/both.c index cac5acba7..5091b8cfd 100644 --- a/tests/apply/both.c +++ b/tests/apply/both.c @@ -723,3 +723,14 @@ void test_apply_both__readd_deleted_file(void) git_diff_free(diff); } + +void test_apply_both__cant_remove_file_twice(void) +{ + git_diff *diff; + + cl_git_pass(git_diff_from_buffer(&diff, DIFF_REMOVE_FILE_TWICE, + strlen(DIFF_REMOVE_FILE_TWICE))); + cl_git_fail(git_apply(repo, diff, GIT_APPLY_LOCATION_BOTH, NULL)); + + git_diff_free(diff); +} |