]> git.proxmox.com Git - libgit2.git/blob - tests/patch/patch_common.h
1e03889fcb776cb22a25ac310d542abe35656e0d
[libgit2.git] / tests / patch / patch_common.h
1 /* The original file contents */
2
3 #define FILE_ORIGINAL \
4 "hey!\n" \
5 "this is some context!\n" \
6 "around some lines\n" \
7 "that will change\n" \
8 "yes it is!\n" \
9 "(this line is changed)\n" \
10 "and this\n" \
11 "is additional context\n" \
12 "below it!\n"
13
14 /* A change in the middle of the file (and the resultant patch) */
15
16 #define FILE_CHANGE_MIDDLE \
17 "hey!\n" \
18 "this is some context!\n" \
19 "around some lines\n" \
20 "that will change\n" \
21 "yes it is!\n" \
22 "(THIS line is changed!)\n" \
23 "and this\n" \
24 "is additional context\n" \
25 "below it!\n"
26
27 #define PATCH_ORIGINAL_TO_CHANGE_MIDDLE \
28 "diff --git a/file.txt b/file.txt\n" \
29 "index 9432026..cd8fd12 100644\n" \
30 "--- a/file.txt\n" \
31 "+++ b/file.txt\n" \
32 "@@ -3,7 +3,7 @@ this is some context!\n" \
33 " around some lines\n" \
34 " that will change\n" \
35 " yes it is!\n" \
36 "-(this line is changed)\n" \
37 "+(THIS line is changed!)\n" \
38 " and this\n" \
39 " is additional context\n" \
40 " below it!\n"
41
42 #define PATCH_ORIGINAL_TO_CHANGE_MIDDLE_NOCONTEXT \
43 "diff --git a/file.txt b/file.txt\n" \
44 "index 9432026..cd8fd12 100644\n" \
45 "--- a/file.txt\n" \
46 "+++ b/file.txt\n" \
47 "@@ -6 +6 @@ yes it is!\n" \
48 "-(this line is changed)\n" \
49 "+(THIS line is changed!)\n"
50
51 /* A change of the first line (and the resultant patch) */
52
53 #define FILE_CHANGE_FIRSTLINE \
54 "hey, change in head!\n" \
55 "this is some context!\n" \
56 "around some lines\n" \
57 "that will change\n" \
58 "yes it is!\n" \
59 "(this line is changed)\n" \
60 "and this\n" \
61 "is additional context\n" \
62 "below it!\n"
63
64 #define PATCH_ORIGINAL_TO_CHANGE_FIRSTLINE \
65 "diff --git a/file.txt b/file.txt\n" \
66 "index 9432026..c81df1d 100644\n" \
67 "--- a/file.txt\n" \
68 "+++ b/file.txt\n" \
69 "@@ -1,4 +1,4 @@\n" \
70 "-hey!\n" \
71 "+hey, change in head!\n" \
72 " this is some context!\n" \
73 " around some lines\n" \
74 " that will change\n"
75
76 /* A change of the last line (and the resultant patch) */
77
78 #define FILE_CHANGE_LASTLINE \
79 "hey!\n" \
80 "this is some context!\n" \
81 "around some lines\n" \
82 "that will change\n" \
83 "yes it is!\n" \
84 "(this line is changed)\n" \
85 "and this\n" \
86 "is additional context\n" \
87 "change to the last line.\n"
88
89 #define PATCH_ORIGINAL_TO_CHANGE_LASTLINE \
90 "diff --git a/file.txt b/file.txt\n" \
91 "index 9432026..f70db1c 100644\n" \
92 "--- a/file.txt\n" \
93 "+++ b/file.txt\n" \
94 "@@ -6,4 +6,4 @@ yes it is!\n" \
95 " (this line is changed)\n" \
96 " and this\n" \
97 " is additional context\n" \
98 "-below it!\n" \
99 "+change to the last line.\n"
100
101 /* A change of the middle where we remove many lines */
102
103 #define FILE_CHANGE_MIDDLE_SHRINK \
104 "hey!\n" \
105 "i've changed a lot, but left the line\n" \
106 "below it!\n"
107
108 #define PATCH_ORIGINAL_TO_CHANGE_MIDDLE_SHRINK \
109 "diff --git a/file.txt b/file.txt\n" \
110 "index 9432026..629cd35 100644\n" \
111 "--- a/file.txt\n" \
112 "+++ b/file.txt\n" \
113 "@@ -1,9 +1,3 @@\n" \
114 " hey!\n" \
115 "-this is some context!\n" \
116 "-around some lines\n" \
117 "-that will change\n" \
118 "-yes it is!\n" \
119 "-(this line is changed)\n" \
120 "-and this\n" \
121 "-is additional context\n" \
122 "+i've changed a lot, but left the line\n" \
123 " below it!\n"
124
125 #define PATCH_ORIGINAL_TO_MIDDLE_SHRINK_NOCONTEXT \
126 "diff --git a/file.txt b/file.txt\n" \
127 "index 9432026..629cd35 100644\n" \
128 "--- a/file.txt\n" \
129 "+++ b/file.txt\n" \
130 "@@ -2,7 +2 @@ hey!\n" \
131 "-this is some context!\n" \
132 "-around some lines\n" \
133 "-that will change\n" \
134 "-yes it is!\n" \
135 "-(this line is changed)\n" \
136 "-and this\n" \
137 "-is additional context\n" \
138 "+i've changed a lot, but left the line\n"
139
140 /* A change to the middle where we grow many lines */
141
142 #define FILE_CHANGE_MIDDLE_GROW \
143 "hey!\n" \
144 "this is some context!\n" \
145 "around some lines\n" \
146 "that will change\n" \
147 "yes it is!\n" \
148 "this line is changed\n" \
149 "and this line is added\n" \
150 "so is this\n" \
151 "(this too)\n" \
152 "whee...\n" \
153 "and this\n" \
154 "is additional context\n" \
155 "below it!\n"
156
157 #define PATCH_ORIGINAL_TO_CHANGE_MIDDLE_GROW \
158 "diff --git a/file.txt b/file.txt\n" \
159 "index 9432026..207ebca 100644\n" \
160 "--- a/file.txt\n" \
161 "+++ b/file.txt\n" \
162 "@@ -3,7 +3,11 @@ this is some context!\n" \
163 " around some lines\n" \
164 " that will change\n" \
165 " yes it is!\n" \
166 "-(this line is changed)\n" \
167 "+this line is changed\n" \
168 "+and this line is added\n" \
169 "+so is this\n" \
170 "+(this too)\n" \
171 "+whee...\n" \
172 " and this\n" \
173 " is additional context\n" \
174 " below it!\n"
175
176
177 #define PATCH_ORIGINAL_TO_MIDDLE_GROW_NOCONTEXT \
178 "diff --git a/file.txt b/file.txt\n" \
179 "index 9432026..207ebca 100644\n" \
180 "--- a/file.txt\n" \
181 "+++ b/file.txt\n" \
182 "@@ -6 +6,5 @@ yes it is!\n" \
183 "-(this line is changed)\n" \
184 "+this line is changed\n" \
185 "+and this line is added\n" \
186 "+so is this\n" \
187 "+(this too)\n" \
188 "+whee...\n"
189
190 /* An insertion at the beginning of the file (and the resultant patch) */
191
192 #define FILE_PREPEND \
193 "insert at front\n" \
194 "hey!\n" \
195 "this is some context!\n" \
196 "around some lines\n" \
197 "that will change\n" \
198 "yes it is!\n" \
199 "(this line is changed)\n" \
200 "and this\n" \
201 "is additional context\n" \
202 "below it!\n"
203
204 #define PATCH_ORIGINAL_TO_PREPEND \
205 "diff --git a/file.txt b/file.txt\n" \
206 "index 9432026..0f39b9a 100644\n" \
207 "--- a/file.txt\n" \
208 "+++ b/file.txt\n" \
209 "@@ -1,3 +1,4 @@\n" \
210 "+insert at front\n" \
211 " hey!\n" \
212 " this is some context!\n" \
213 " around some lines\n"
214
215 #define PATCH_ORIGINAL_TO_PREPEND_NOCONTEXT \
216 "diff --git a/file.txt b/file.txt\n" \
217 "index 9432026..0f39b9a 100644\n" \
218 "--- a/file.txt\n" \
219 "+++ b/file.txt\n" \
220 "@@ -0,0 +1 @@\n" \
221 "+insert at front\n"
222
223 /* An insertion at the beginning of the file and change in the middle */
224
225 #define FILE_PREPEND_AND_CHANGE \
226 "insert at front\n" \
227 "hey!\n" \
228 "this is some context!\n" \
229 "around some lines\n" \
230 "that will change\n" \
231 "yes it is!\n" \
232 "(THIS line is changed!)\n" \
233 "and this\n" \
234 "is additional context\n" \
235 "below it!\n"
236
237 #define PATCH_ORIGINAL_TO_PREPEND_AND_CHANGE \
238 "diff --git a/file.txt b/file.txt\n" \
239 "index 9432026..f73c8bb 100644\n" \
240 "--- a/file.txt\n" \
241 "+++ b/file.txt\n" \
242 "@@ -1,9 +1,10 @@\n" \
243 "+insert at front\n" \
244 " hey!\n" \
245 " this is some context!\n" \
246 " around some lines\n" \
247 " that will change\n" \
248 " yes it is!\n" \
249 "-(this line is changed)\n" \
250 "+(THIS line is changed!)\n" \
251 " and this\n" \
252 " is additional context\n" \
253 " below it!\n"
254
255 #define PATCH_ORIGINAL_TO_PREPEND_AND_CHANGE_NOCONTEXT \
256 "diff --git a/file.txt b/file.txt\n" \
257 "index 9432026..f73c8bb 100644\n" \
258 "--- a/file.txt\n" \
259 "+++ b/file.txt\n" \
260 "@@ -0,0 +1 @@\n" \
261 "+insert at front\n" \
262 "@@ -6 +7 @@ yes it is!\n" \
263 "-(this line is changed)\n" \
264 "+(THIS line is changed!)\n"
265
266 /* A change in the middle and a deletion of the newline at the end of the file */
267
268 #define FILE_CHANGE_MIDDLE_AND_LASTLINE \
269 "hey!\n" \
270 "this is some context!\n" \
271 "around some lines\n" \
272 "that will change\n" \
273 "yes it is!\n" \
274 "(THIS line is changed!)\n" \
275 "and this\n" \
276 "is additional context\n" \
277 "BELOW it! - (THIS line is changed!)"
278
279 #define PATCH_ORIGINAL_TO_CHANGE_MIDDLE_AND_LASTLINE_NOCONTEXT \
280 "diff --git a/file.txt b/file.txt\n" \
281 "index 9432026..e05d36c 100644\n" \
282 "--- a/file.txt\n" \
283 "+++ b/file.txt\n" \
284 "@@ -6 +6 @@ yes it is!\n" \
285 "-(this line is changed)\n" \
286 "+(THIS line is changed!)\n" \
287 "@@ -9 +9 @@ is additional context\n" \
288 "-below it!\n" \
289 "+BELOW it! - (THIS line is changed!)\n" \
290 "\\ No newline at end of file\n"
291
292 /* A deletion at the beginning of the file and a change in the middle */
293
294 #define FILE_DELETE_AND_CHANGE \
295 "this is some context!\n" \
296 "around some lines\n" \
297 "that will change\n" \
298 "yes it is!\n" \
299 "(THIS line is changed!)\n" \
300 "and this\n" \
301 "is additional context\n" \
302 "below it!\n"
303
304 #define PATCH_ORIGINAL_TO_DELETE_AND_CHANGE \
305 "diff --git a/file.txt b/file.txt\n" \
306 "index 9432026..1e2dfa6 100644\n" \
307 "--- a/file.txt\n" \
308 "+++ b/file.txt\n" \
309 "@@ -1,9 +1,8 @@\n" \
310 "-hey!\n" \
311 " this is some context!\n" \
312 " around some lines\n" \
313 " that will change\n" \
314 " yes it is!\n" \
315 "-(this line is changed)\n" \
316 "+(THIS line is changed!)\n" \
317 " and this\n" \
318 " is additional context\n" \
319 " below it!\n"
320
321 #define PATCH_ORIGINAL_TO_DELETE_AND_CHANGE_NOCONTEXT \
322 "diff --git a/file.txt b/file.txt\n" \
323 "index 9432026..1e2dfa6 100644\n" \
324 "--- a/file.txt\n" \
325 "+++ b/file.txt\n" \
326 "@@ -1 +0,0 @@\n" \
327 "-hey!\n" \
328 "@@ -6 +5 @@ yes it is!\n" \
329 "-(this line is changed)\n" \
330 "+(THIS line is changed!)\n"
331
332 /* A deletion at the beginning of the file */
333
334 #define FILE_DELETE_FIRSTLINE \
335 "this is some context!\n" \
336 "around some lines\n" \
337 "that will change\n" \
338 "yes it is!\n" \
339 "(this line is changed)\n" \
340 "and this\n" \
341 "is additional context\n" \
342 "below it!\n"
343
344 #define PATCH_ORIGINAL_TO_DELETE_FIRSTLINE \
345 "diff --git a/file.txt b/file.txt\n" \
346 "index 9432026..f31fa13 100644\n" \
347 "--- a/file.txt\n" \
348 "+++ b/file.txt\n" \
349 "@@ -1,4 +1,3 @@\n" \
350 "-hey!\n" \
351 " this is some context!\n" \
352 " around some lines\n" \
353 " that will change\n"
354
355 /* An insertion at the end of the file (and the resultant patch) */
356
357 #define FILE_APPEND \
358 "hey!\n" \
359 "this is some context!\n" \
360 "around some lines\n" \
361 "that will change\n" \
362 "yes it is!\n" \
363 "(this line is changed)\n" \
364 "and this\n" \
365 "is additional context\n" \
366 "below it!\n" \
367 "insert at end\n"
368
369 #define PATCH_ORIGINAL_TO_APPEND \
370 "diff --git a/file.txt b/file.txt\n" \
371 "index 9432026..72788bb 100644\n" \
372 "--- a/file.txt\n" \
373 "+++ b/file.txt\n" \
374 "@@ -7,3 +7,4 @@ yes it is!\n" \
375 " and this\n" \
376 " is additional context\n" \
377 " below it!\n" \
378 "+insert at end\n"
379
380 #define PATCH_ORIGINAL_TO_APPEND_NOCONTEXT \
381 "diff --git a/file.txt b/file.txt\n" \
382 "index 9432026..72788bb 100644\n" \
383 "--- a/file.txt\n" \
384 "+++ b/file.txt\n" \
385 "@@ -9,0 +10 @@ below it!\n" \
386 "+insert at end\n"
387
388 #define PATCH_DELETED_FILE_2_HUNKS \
389 "diff --git a/a b/a\n" \
390 "index 7f129fd..af431f2 100644\n" \
391 "--- a/a\n" \
392 "+++ b/a\n" \
393 "@@ -1 +1 @@\n" \
394 "-a contents 2\n" \
395 "+a contents\n" \
396 "diff --git a/c/d b/c/d\n" \
397 "deleted file mode 100644\n" \
398 "index 297efb8..0000000\n" \
399 "--- a/c/d\n" \
400 "+++ /dev/null\n" \
401 "@@ -1 +0,0 @@\n" \
402 "-c/d contents\n"
403
404 #define PATCH_DELETED_FILE_2_HUNKS_SHUFFLED \
405 "diff --git a/c/d b/c/d\n" \
406 "deleted file mode 100644\n" \
407 "index 297efb8..0000000\n" \
408 "--- a/c/d\n" \
409 "+++ /dev/null\n" \
410 "@@ -1 +0,0 @@\n" \
411 "-c/d contents\n" \
412 "diff --git a/a b/a\n" \
413 "index 7f129fd..af431f2 100644\n" \
414 "--- a/a\n" \
415 "+++ b/a\n" \
416 "@@ -1 +1 @@\n" \
417 "-a contents 2\n" \
418 "+a contents\n"
419
420 #define PATCH_SIMPLE_COMMIT \
421 "commit 15e119375018fba121cf58e02a9f17fe22df0df8\n" \
422 "Author: Edward Thomson <ethomson@edwardthomson.com>\n" \
423 "Date: Wed Jun 14 13:31:20 2017 +0200\n" \
424 "\n" \
425 " CHANGELOG: document git_filter_init and GIT_FILTER_INIT\n" \
426 "\n" \
427 "diff --git a/CHANGELOG.md b/CHANGELOG.md\n" \
428 "index 1b9e0c90a..24ecba426 100644\n" \
429 "--- a/CHANGELOG.md\n" \
430 "+++ b/CHANGELOG.md\n" \
431 "@@ -96,6 +96,9 @@ v0.26\n" \
432 " * `git_transport_smart_proxy_options()' enables you to get the proxy options for\n" \
433 " smart transports.\n" \
434 "\n" \
435 "+* The `GIT_FILTER_INIT` macro and the `git_filter_init` function are provided\n" \
436 "+ to initialize a `git_filter` structure.\n" \
437 "+\n" \
438 " ### Breaking API changes\n" \
439 "\n" \
440 " * `clone_checkout_strategy` has been removed from\n"
441
442 #define PATCH_MULTIPLE_HUNKS \
443 "diff --git a/x b/x\n" \
444 "index 0719398..fa0350c 100644\n" \
445 "--- a/x\n" \
446 "+++ b/x\n" \
447 "@@ -1,5 +1,4 @@\n" \
448 " 1\n" \
449 "-2\n" \
450 " 3\n" \
451 " 4\n" \
452 " 5\n" \
453 "@@ -7,3 +6,4 @@\n" \
454 " 7\n" \
455 " 8\n" \
456 " 9\n" \
457 "+10\n"
458
459 #define PATCH_MULTIPLE_FILES \
460 "diff --git a/x b/x\n" \
461 "index 8a1218a..7059ba5 100644\n" \
462 "--- a/x\n" \
463 "+++ b/x\n" \
464 "@@ -1,5 +1,4 @@\n" \
465 " 1\n" \
466 " 2\n" \
467 "-3\n" \
468 " 4\n" \
469 " 5\n" \
470 "diff --git a/y b/y\n" \
471 "index e006065..9405325 100644\n" \
472 "--- a/y\n" \
473 "+++ b/y\n" \
474 "@@ -1,4 +1,5 @@\n" \
475 " a\n" \
476 " b\n" \
477 "+c\n" \
478 " d\n" \
479 " e\n"
480
481 #define FILE_PREPEND_AND_APPEND \
482 "first and\n" \
483 "this is some context!\n" \
484 "around some lines\n" \
485 "that will change\n" \
486 "yes it is!\n" \
487 "(this line is changed)\n" \
488 "and this\n" \
489 "is additional context\n" \
490 "last lines\n"
491
492 #define PATCH_ORIGINAL_TO_PREPEND_AND_APPEND \
493 "diff --git a/file.txt b/file.txt\n" \
494 "index 9432026..f282430 100644\n" \
495 "--- a/file.txt\n" \
496 "+++ b/file.txt\n" \
497 "@@ -1,4 +1,4 @@\n" \
498 "-hey!\n" \
499 "+first and\n" \
500 " this is some context!\n" \
501 " around some lines\n" \
502 " that will change\n" \
503 "@@ -6,4 +6,4 @@ yes it is!\n" \
504 " (this line is changed)\n" \
505 " and this\n" \
506 " is additional context\n" \
507 "-below it!\n" \
508 "+last lines\n"
509
510 #define PATCH_ORIGINAL_TO_EMPTY_FILE \
511 "diff --git a/file.txt b/file.txt\n" \
512 "index 9432026..e69de29 100644\n" \
513 "--- a/file.txt\n" \
514 "+++ b/file.txt\n" \
515 "@@ -1,9 +0,0 @@\n" \
516 "-hey!\n" \
517 "-this is some context!\n" \
518 "-around some lines\n" \
519 "-that will change\n" \
520 "-yes it is!\n" \
521 "-(this line is changed)\n" \
522 "-and this\n" \
523 "-is additional context\n" \
524 "-below it!\n"
525
526 #define PATCH_EMPTY_FILE_TO_ORIGINAL \
527 "diff --git a/file.txt b/file.txt\n" \
528 "index e69de29..9432026 100644\n" \
529 "--- a/file.txt\n" \
530 "+++ b/file.txt\n" \
531 "@@ -0,0 +1,9 @@\n" \
532 "+hey!\n" \
533 "+this is some context!\n" \
534 "+around some lines\n" \
535 "+that will change\n" \
536 "+yes it is!\n" \
537 "+(this line is changed)\n" \
538 "+and this\n" \
539 "+is additional context\n" \
540 "+below it!\n"
541
542 #define PATCH_ADD_ORIGINAL \
543 "diff --git a/file.txt b/file.txt\n" \
544 "new file mode 100644\n" \
545 "index 0000000..9432026\n" \
546 "--- /dev/null\n" \
547 "+++ b/file.txt\n" \
548 "@@ -0,0 +1,9 @@\n" \
549 "+hey!\n" \
550 "+this is some context!\n" \
551 "+around some lines\n" \
552 "+that will change\n" \
553 "+yes it is!\n" \
554 "+(this line is changed)\n" \
555 "+and this\n" \
556 "+is additional context\n" \
557 "+below it!\n"
558
559 #define PATCH_DELETE_ORIGINAL \
560 "diff --git a/file.txt b/file.txt\n" \
561 "deleted file mode 100644\n" \
562 "index 9432026..0000000\n" \
563 "--- a/file.txt\n" \
564 "+++ /dev/null\n" \
565 "@@ -1,9 +0,0 @@\n" \
566 "-hey!\n" \
567 "-this is some context!\n" \
568 "-around some lines\n" \
569 "-that will change\n" \
570 "-yes it is!\n" \
571 "-(this line is changed)\n" \
572 "-and this\n" \
573 "-is additional context\n" \
574 "-below it!\n"
575
576 #define PATCH_RENAME_EXACT \
577 "diff --git a/file.txt b/newfile.txt\n" \
578 "similarity index 100%\n" \
579 "rename from file.txt\n" \
580 "rename to newfile.txt\n"
581
582 #define PATCH_RENAME_EXACT_WITH_MODE \
583 "diff --git a/RENAMED.md b/README.md\n" \
584 "old mode 100644\n" \
585 "new mode 100755\n" \
586 "similarity index 100%\n" \
587 "rename from RENAMED.md\n" \
588 "rename to README.md\n"
589
590 #define PATCH_RENAME_SIMILAR \
591 "diff --git a/file.txt b/newfile.txt\n" \
592 "similarity index 77%\n" \
593 "rename from file.txt\n" \
594 "rename to newfile.txt\n" \
595 "index 9432026..cd8fd12 100644\n" \
596 "--- a/file.txt\n" \
597 "+++ b/newfile.txt\n" \
598 "@@ -3,7 +3,7 @@ this is some context!\n" \
599 " around some lines\n" \
600 " that will change\n" \
601 " yes it is!\n" \
602 "-(this line is changed)\n" \
603 "+(THIS line is changed!)\n" \
604 " and this\n" \
605 " is additional context\n" \
606 " below it!\n"
607
608 #define PATCH_RENAME_EXACT_QUOTEDNAME \
609 "diff --git a/file.txt \"b/foo\\\"bar.txt\"\n" \
610 "similarity index 100%\n" \
611 "rename from file.txt\n" \
612 "rename to \"foo\\\"bar.txt\"\n"
613
614 #define PATCH_RENAME_SIMILAR_QUOTEDNAME \
615 "diff --git a/file.txt \"b/foo\\\"bar.txt\"\n" \
616 "similarity index 77%\n" \
617 "rename from file.txt\n" \
618 "rename to \"foo\\\"bar.txt\"\n" \
619 "index 9432026..cd8fd12 100644\n" \
620 "--- a/file.txt\n" \
621 "+++ \"b/foo\\\"bar.txt\"\n" \
622 "@@ -3,7 +3,7 @@ this is some context!\n" \
623 " around some lines\n" \
624 " that will change\n" \
625 " yes it is!\n" \
626 "-(this line is changed)\n" \
627 "+(THIS line is changed!)\n" \
628 " and this\n" \
629 " is additional context\n" \
630 " below it!\n"
631
632 #define PATCH_MODECHANGE_UNCHANGED \
633 "diff --git a/file.txt b/file.txt\n" \
634 "old mode 100644\n" \
635 "new mode 100755\n"
636
637 #define PATCH_MODECHANGE_MODIFIED \
638 "diff --git a/file.txt b/file.txt\n" \
639 "old mode 100644\n" \
640 "new mode 100755\n" \
641 "index 9432026..cd8fd12\n" \
642 "--- a/file.txt\n" \
643 "+++ b/file.txt\n" \
644 "@@ -3,7 +3,7 @@ this is some context!\n" \
645 " around some lines\n" \
646 " that will change\n" \
647 " yes it is!\n" \
648 "-(this line is changed)\n" \
649 "+(THIS line is changed!)\n" \
650 " and this\n" \
651 " is additional context\n" \
652 " below it!\n"
653
654 #define PATCH_NOISY \
655 "This is some\nleading noise\n@@ - that\nlooks like a hunk header\n" \
656 "but actually isn't and should parse ok\n" \
657 PATCH_ORIGINAL_TO_CHANGE_MIDDLE \
658 "plus some trailing garbage for good measure\n"
659
660 #define PATCH_NOISY_NOCONTEXT \
661 "This is some\nleading noise\n@@ - that\nlooks like a hunk header\n" \
662 "but actually isn't and should parse ok\n" \
663 PATCH_ORIGINAL_TO_CHANGE_MIDDLE_NOCONTEXT \
664 "plus some trailing garbage for good measure\n"
665
666 #define PATCH_TRUNCATED_1 \
667 "diff --git a/file.txt b/file.txt\n" \
668 "index 9432026..cd8fd12 100644\n" \
669 "--- a/file.txt\n" \
670 "+++ b/file.txt\n" \
671 "@@ -3,7 +3,7 @@ this is some context!\n" \
672 " around some lines\n" \
673 " that will change\n" \
674 " yes it is!\n" \
675 "-(this line is changed)\n" \
676 "+(THIS line is changed!)\n" \
677 " and this\n"
678
679 #define PATCH_TRUNCATED_2 \
680 "diff --git a/file.txt b/file.txt\n" \
681 "index 9432026..cd8fd12 100644\n" \
682 "--- a/file.txt\n" \
683 "+++ b/file.txt\n" \
684 "@@ -3,7 +3,7 @@ this is some context!\n" \
685 " around some lines\n" \
686 "-(this line is changed)\n" \
687 "+(THIS line is changed!)\n" \
688 " and this\n" \
689 " is additional context\n" \
690 " below it!\n"
691
692 #define PATCH_TRUNCATED_3 \
693 "diff --git a/file.txt b/file.txt\n" \
694 "index 9432026..cd8fd12 100644\n" \
695 "--- a/file.txt\n" \
696 "+++ b/file.txt\n" \
697 "@@ -3,7 +3,7 @@ this is some context!\n" \
698 " around some lines\n" \
699 " that will change\n" \
700 " yes it is!\n" \
701 "+(THIS line is changed!)\n" \
702 " and this\n" \
703 " is additional context\n" \
704 " below it!\n"
705
706 #define FILE_EMPTY_CONTEXT_ORIGINAL \
707 "this\nhas\nan\n\nempty\ncontext\nline\n"
708
709 #define FILE_EMPTY_CONTEXT_MODIFIED \
710 "this\nhas\nan\n\nempty...\ncontext\nline\n"
711
712 #define PATCH_EMPTY_CONTEXT \
713 "diff --git a/file.txt b/file.txt\n" \
714 "index 398d2df..bb15234 100644\n" \
715 "--- a/file.txt\n" \
716 "+++ b/file.txt\n" \
717 "@@ -2,6 +2,6 @@ this\n" \
718 " has\n" \
719 " an\n" \
720 "\n" \
721 "-empty\n" \
722 "+empty...\n" \
723 " context\n" \
724 " line\n"
725
726 #define FILE_APPEND_NO_NL \
727 "hey!\n" \
728 "this is some context!\n" \
729 "around some lines\n" \
730 "that will change\n" \
731 "yes it is!\n" \
732 "(this line is changed)\n" \
733 "and this\n" \
734 "is additional context\n" \
735 "below it!\n" \
736 "added line with no nl"
737
738 #define PATCH_APPEND_NO_NL \
739 "diff --git a/file.txt b/file.txt\n" \
740 "index 9432026..83759c0 100644\n" \
741 "--- a/file.txt\n" \
742 "+++ b/file.txt\n" \
743 "@@ -7,3 +7,4 @@ yes it is!\n" \
744 " and this\n" \
745 " is additional context\n" \
746 " below it!\n" \
747 "+added line with no nl\n" \
748 "\\ No newline at end of file\n"
749
750 #define PATCH_APPEND_NO_NL_IN_OLD_FILE \
751 "diff --git a/file.txt b/file.txt\n" \
752 "index 9432026..83759c0 100644\n" \
753 "--- a/file.txt\n" \
754 "+++ b/file.txt\n" \
755 "@@ -1,1 +1,1 @@\n" \
756 "-foo\n" \
757 "\\ No newline at end of file\n" \
758 "+foo\n"
759
760 #define PATCH_NAME_WHITESPACE \
761 "diff --git a/file with spaces.txt b/file with spaces.txt\n" \
762 "index 9432026..83759c0 100644\n" \
763 "--- a/file with spaces.txt\n" \
764 "+++ b/file with spaces.txt\n" \
765 "@@ -0,3 +0,2 @@\n" \
766 " and this\n" \
767 "-is additional context\n" \
768 " below it!\n" \
769
770 #define PATCH_CORRUPT_GIT_HEADER \
771 "diff --git a/file.txt\n" \
772 "index 9432026..0f39b9a 100644\n" \
773 "--- a/file.txt\n" \
774 "+++ b/file.txt\n" \
775 "@@ -0,0 +1 @@\n" \
776 "+insert at front\n"
777
778 #define PATCH_CORRUPT_MISSING_NEW_FILE \
779 "diff --git a/file.txt b/file.txt\n" \
780 "index 9432026..cd8fd12 100644\n" \
781 "--- a/file.txt\n" \
782 "@@ -6 +6 @@ yes it is!\n" \
783 "-(this line is changed)\n" \
784 "+(THIS line is changed!)\n"
785
786 #define PATCH_CORRUPT_MISSING_OLD_FILE \
787 "diff --git a/file.txt b/file.txt\n" \
788 "index 9432026..cd8fd12 100644\n" \
789 "+++ b/file.txt\n" \
790 "@@ -6 +6 @@ yes it is!\n" \
791 "-(this line is changed)\n" \
792 "+(THIS line is changed!)\n"
793
794 #define PATCH_CORRUPT_NO_CHANGES \
795 "diff --git a/file.txt b/file.txt\n" \
796 "index 9432026..cd8fd12 100644\n" \
797 "--- a/file.txt\n" \
798 "+++ b/file.txt\n" \
799 "@@ -0,0 +0,0 @@ yes it is!\n"
800
801 #define PATCH_CORRUPT_MISSING_HUNK_HEADER \
802 "diff --git a/file.txt b/file.txt\n" \
803 "index 9432026..cd8fd12 100644\n" \
804 "--- a/file.txt\n" \
805 "+++ b/file.txt\n" \
806 "-(this line is changed)\n" \
807 "+(THIS line is changed!)\n"
808
809 #define PATCH_NOT_A_PATCH \
810 "+++this is not\n" \
811 "--actually even\n" \
812 " a legitimate \n" \
813 "+patch file\n" \
814 "-it's something else\n" \
815 " entirely!"
816
817 /* binary contents */
818
819 #define FILE_BINARY_LITERAL_ORIGINAL "\x00\x00\x0a"
820 #define FILE_BINARY_LITERAL_ORIGINAL_LEN 3
821
822 #define FILE_BINARY_LITERAL_MODIFIED "\x00\x00\x01\x02\x0a"
823 #define FILE_BINARY_LITERAL_MODIFIED_LEN 5
824
825 #define PATCH_BINARY_LITERAL \
826 "diff --git a/binary.bin b/binary.bin\n" \
827 "index bd474b2519cc15eab801ff851cc7d50f0dee49a1..9ac35ff15cd8864aeafd889e4826a3150f0b06c4 100644\n" \
828 "GIT binary patch\n" \
829 "literal 5\n" \
830 "Mc${NkU}WL~000&M4gdfE\n" \
831 "\n" \
832 "literal 3\n" \
833 "Kc${Nk-~s>u4FC%O\n\n"
834
835 #define FILE_BINARY_DELTA_ORIGINAL \
836 "\x00\x00\x01\x02\x00\x00\x01\x02\x00\x00\x01\x02\x0a\x54\x68\x69" \
837 "\x73\x20\x69\x73\x20\x61\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x69" \
838 "\x6c\x65\x2c\x20\x62\x79\x20\x76\x69\x72\x74\x75\x65\x20\x6f\x66" \
839 "\x20\x68\x61\x76\x69\x6e\x67\x20\x73\x6f\x6d\x65\x20\x6e\x75\x6c" \
840 "\x6c\x73\x2e\x0a\x00\x00\x01\x02\x00\x00\x01\x02\x00\x00\x01\x02" \
841 "\x0a\x57\x65\x27\x72\x65\x20\x67\x6f\x69\x6e\x67\x20\x74\x6f\x20" \
842 "\x63\x68\x61\x6e\x67\x65\x20\x70\x6f\x72\x74\x69\x6f\x6e\x73\x20" \
843 "\x6f\x66\x20\x69\x74\x2e\x0a\x00\x00\x01\x02\x00\x00\x01\x02\x00" \
844 "\x00\x01\x02\x0a\x53\x6f\x20\x74\x68\x61\x74\x20\x77\x65\x20\x67" \
845 "\x69\x74\x20\x61\x20\x62\x69\x6e\x61\x72\x79\x20\x64\x65\x6c\x74" \
846 "\x61\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x74\x68\x65" \
847 "\x20\x64\x65\x66\x6c\x61\x74\x65\x64\x20\x63\x6f\x6e\x74\x65\x6e" \
848 "\x74\x73\x2e\x0a\x00\x00\x01\x02\x00\x00\x01\x02\x00\x00\x01\x02" \
849 "\x0a"
850 #define FILE_BINARY_DELTA_ORIGINAL_LEN 209
851
852 #define FILE_BINARY_DELTA_MODIFIED \
853 "\x00\x00\x01\x02\x00\x00\x01\x02\x00\x00\x01\x02\x0a\x5a\x5a\x5a" \
854 "\x5a\x20\x69\x73\x20\x61\x20\x62\x69\x6e\x61\x72\x79\x20\x66\x69" \
855 "\x6c\x65\x2c\x20\x62\x79\x20\x76\x69\x72\x74\x75\x65\x20\x6f\x66" \
856 "\x20\x68\x61\x76\x69\x6e\x67\x20\x73\x6f\x6d\x65\x20\x6e\x75\x6c" \
857 "\x6c\x73\x2e\x0a\x00\x00\x01\x02\x00\x00\x01\x02\x00\x00\x01\x02" \
858 "\x0a\x57\x65\x27\x72\x65\x20\x67\x6f\x69\x6e\x67\x20\x74\x6f\x20" \
859 "\x63\x68\x61\x6e\x67\x65\x20\x70\x6f\x72\x74\x69\x6f\x6e\x73\x20" \
860 "\x6f\x66\x20\x49\x54\x2e\x0a\x00\x00\x01\x02\x00\x00\x01\x02\x00" \
861 "\x00\x01\x02\x0a\x53\x4f\x20\x74\x68\x61\x74\x20\x77\x65\x20\x67" \
862 "\x69\x74\x20\x61\x20\x62\x69\x6e\x61\x72\x79\x20\x64\x65\x6c\x74" \
863 "\x61\x20\x69\x6e\x73\x74\x65\x61\x64\x20\x6f\x66\x20\x74\x68\x65" \
864 "\x20\x64\x65\x66\x6c\x61\x74\x65\x64\x20\x63\x6f\x6e\x74\x65\x6e" \
865 "\x74\x73\x2e\x0a\x00\x00\x01\x02\x00\x00\x01\x02\x00\x00\x01\x02" \
866 "\x0a"
867 #define FILE_BINARY_DELTA_MODIFIED_LEN 209
868
869 #define PATCH_BINARY_DELTA \
870 "diff --git a/binary.bin b/binary.bin\n" \
871 "index 27184d9883b12c4c9c54b4a31137603586169f51..7c94f9e60bf366033d98e0d551ae37d30faef74a 100644\n" \
872 "GIT binary patch\n" \
873 "delta 48\n" \
874 "kc$~Y)c#%<%fq{_;hPk4EV4`4>uxE%K7m7r%|HL+L0In7XGynhq\n" \
875 "\n" \
876 "delta 48\n" \
877 "mc$~Y)c#%<%fq{_;hPgsAGK(h)CJASj=y9P)1m{m|^9BI99|yz$\n\n"
878
879 #define PATCH_BINARY_ADD \
880 "diff --git a/binary.bin b/binary.bin\n" \
881 "new file mode 100644\n" \
882 "index 0000000000000000000000000000000000000000..7c94f9e60bf366033d98e0d551ae37d30faef74a\n" \
883 "GIT binary patch\n" \
884 "literal 209\n" \
885 "zc${60u?oUK5JXSQe8qG&;(u6KC<u0&+$Ohh?#kUJlD{_rLCL^0!@QXgcKh&k^H>C_\n" \
886 "zAhe=XX7rNzh<3&##YcwqNHmEKsP<&&m~%Zf;eX@Khr$?aExDmfqyyt+#l^I)3+LMg\n" \
887 "kxnAIj9Pfn_|Gh`fP7tlm6j#y{FJYg_IifRlR^R@A08f862mk;8\n" \
888 "\n" \
889 "literal 0\n" \
890 "Hc$@<O00001\n\n"
891
892 #define PATCH_BINARY_DELETE \
893 "diff --git a/binary.bin b/binary.bin\n" \
894 "deleted file mode 100644\n" \
895 "index 7c94f9e60bf366033d98e0d551ae37d30faef74a..0000000000000000000000000000000000000000\n" \
896 "GIT binary patch\n" \
897 "literal 0\n" \
898 "Hc$@<O00001\n" \
899 "\n" \
900 "literal 209\n" \
901 "zc${60u?oUK5JXSQe8qG&;(u6KC<u0&+$Ohh?#kUJlD{_rLCL^0!@QXgcKh&k^H>C_\n" \
902 "zAhe=XX7rNzh<3&##YcwqNHmEKsP<&&m~%Zf;eX@Khr$?aExDmfqyyt+#l^I)3+LMg\n" \
903 "kxnAIj9Pfn_|Gh`fP7tlm6j#y{FJYg_IifRlR^R@A08f862mk;8\n\n"
904
905 /* contains an old side that does not match the expected source */
906 #define PATCH_BINARY_NOT_REVERSIBLE \
907 "diff --git a/binary.bin b/binary.bin\n" \
908 "index 27184d9883b12c4c9c54b4a31137603586169f51..7c94f9e60bf366033d98e0d551ae37d30faef74a 100644\n" \
909 "GIT binary patch\n" \
910 "literal 5\n" \
911 "Mc${NkU}WL~000&M4gdfE\n" \
912 "\n" \
913 "delta 48\n" \
914 "mc$~Y)c#%<%fq{_;hPgsAGK(h)CJASj=y9P)1m{m|^9BI99|yz$\n\n"
915
916 #define PATCH_BINARY_NOT_PRINTED \
917 "diff --git a/binary.bin b/binary.bin\n" \
918 "index 27184d9..7c94f9e 100644\n" \
919 "Binary files a/binary.bin and b/binary.bin differ\n"
920
921 #define PATCH_ADD_BINARY_NOT_PRINTED \
922 "diff --git a/test.bin b/test.bin\n" \
923 "new file mode 100644\n" \
924 "index 0000000..9e0f96a\n" \
925 "Binary files /dev/null and b/test.bin differ\n"
926
927 #define PATCH_ORIGINAL_NEW_FILE_WITH_SPACE \
928 "diff --git a/sp ace.txt b/sp ace.txt\n" \
929 "new file mode 100644\n" \
930 "index 000000000..789819226\n" \
931 "--- /dev/null\n" \
932 "+++ b/sp ace.txt\n" \
933 "@@ -0,0 +1 @@\n" \
934 "+a\n"
935
936 #define PATCH_CRLF \
937 "diff --git a/test-file b/test-file\r\n" \
938 "new file mode 100644\r\n" \
939 "index 0000000..af431f2 100644\r\n" \
940 "--- /dev/null\r\n" \
941 "+++ b/test-file\r\n" \
942 "@@ -0,0 +1 @@\r\n" \
943 "+a contents\r\n"
944
945 #define PATCH_NO_EXTENDED_HEADERS \
946 "diff --git a/file b/file\n" \
947 "--- a/file\n" \
948 "+++ b/file\n" \
949 "@@ -1,3 +1,3 @@\n" \
950 " a\n" \
951 "-b\n" \
952 "+bb\n" \
953 " c\n"
954
955 #define PATCH_BINARY_FILE_WITH_MISSING_PATHS \
956 "diff --git \n" \
957 "--- \n" \
958 "+++ \n" \
959 "Binary files "
960
961 #define PATCH_BINARY_FILE_WITH_WHITESPACE_PATHS \
962 "diff --git a/file b/file\n" \
963 "--- \n" \
964 "+++ \n" \
965 "Binary files "
966
967 #define PATCH_BINARY_FILE_WITH_QUOTED_EMPTY_PATHS \
968 "diff --git a/file b/file\n" \
969 "--- \"\"\n" \
970 "+++ \"\"\n" \
971 "Binary files "
972
973 #define PATCH_BINARY_FILE_PATH_WITH_SPACES \
974 "diff --git a b c d e f\n" \
975 "--- a b c\n" \
976 "+++ d e f\n" \
977 "Binary files a b c and d e f differ"
978
979 #define PATCH_BINARY_FILE_PATH_WITHOUT_BODY_PATHS \
980 "diff --git a b c d e f\n" \
981 "--- \n" \
982 "+++ \n" \
983 "Binary files a b c and d e f differ"
984
985 #define PATCH_BINARY_FILE_WITH_TRUNCATED_DELTA \
986 "diff --git a/file b/file\n" \
987 "index 1420..b71f\n" \
988 "GIT binary patch\n" \
989 "delta 7\n" \
990 "d"
991
992 #define PATCH_MULTIPLE_OLD_PATHS \
993 "diff --git \n" \
994 "--- \n" \
995 "+++ \n" \
996 "index 0000..7DDb\n" \
997 "--- \n"
998
999 #define PATCH_INTMAX_NEW_LINES \
1000 "diff --git a/file b/file\n" \
1001 "--- a/file\n" \
1002 "+++ b/file\n" \
1003 "@@ -0 +2147483647 @@\n" \
1004 "\n" \
1005 " "