1 #include "clar_libgit2.h"
3 #include "patch_parse.h"
5 #include "patch_common.h"
8 /* sanity check the round-trip of patch parsing: ensure that we can parse
9 * and then print a variety of patch files.
12 void patch_print_from_patchfile(const char *data
, size_t len
)
15 git_buf buf
= GIT_BUF_INIT
;
17 cl_git_pass(git_patch_from_buffer(&patch
, data
, len
, NULL
));
18 cl_git_pass(git_patch_to_buf(&buf
, patch
));
20 cl_assert_equal_s(data
, buf
.ptr
);
22 git_patch_free(patch
);
23 git_buf_dispose(&buf
);
26 void test_patch_print__change_middle(void)
28 patch_print_from_patchfile(PATCH_ORIGINAL_TO_CHANGE_MIDDLE
,
29 strlen(PATCH_ORIGINAL_TO_CHANGE_MIDDLE
));
32 void test_patch_print__change_middle_nocontext(void)
34 patch_print_from_patchfile(PATCH_ORIGINAL_TO_CHANGE_MIDDLE_NOCONTEXT
,
35 strlen(PATCH_ORIGINAL_TO_CHANGE_MIDDLE_NOCONTEXT
));
38 void test_patch_print__change_firstline(void)
40 patch_print_from_patchfile(PATCH_ORIGINAL_TO_CHANGE_FIRSTLINE
,
41 strlen(PATCH_ORIGINAL_TO_CHANGE_FIRSTLINE
));
44 void test_patch_print__change_lastline(void)
46 patch_print_from_patchfile(PATCH_ORIGINAL_TO_CHANGE_LASTLINE
,
47 strlen(PATCH_ORIGINAL_TO_CHANGE_LASTLINE
));
50 void test_patch_print__prepend(void)
52 patch_print_from_patchfile(PATCH_ORIGINAL_TO_PREPEND
,
53 strlen(PATCH_ORIGINAL_TO_PREPEND
));
56 void test_patch_print__prepend_nocontext(void)
58 patch_print_from_patchfile(PATCH_ORIGINAL_TO_PREPEND_NOCONTEXT
,
59 strlen(PATCH_ORIGINAL_TO_PREPEND_NOCONTEXT
));
62 void test_patch_print__append(void)
64 patch_print_from_patchfile(PATCH_ORIGINAL_TO_APPEND
,
65 strlen(PATCH_ORIGINAL_TO_APPEND
));
68 void test_patch_print__append_nocontext(void)
70 patch_print_from_patchfile(PATCH_ORIGINAL_TO_APPEND_NOCONTEXT
,
71 strlen(PATCH_ORIGINAL_TO_APPEND_NOCONTEXT
));
74 void test_patch_print__prepend_and_append(void)
76 patch_print_from_patchfile(PATCH_ORIGINAL_TO_PREPEND_AND_APPEND
,
77 strlen(PATCH_ORIGINAL_TO_PREPEND_AND_APPEND
));
80 void test_patch_print__to_empty_file(void)
82 patch_print_from_patchfile(PATCH_ORIGINAL_TO_EMPTY_FILE
,
83 strlen(PATCH_ORIGINAL_TO_EMPTY_FILE
));
86 void test_patch_print__from_empty_file(void)
88 patch_print_from_patchfile(PATCH_EMPTY_FILE_TO_ORIGINAL
,
89 strlen(PATCH_EMPTY_FILE_TO_ORIGINAL
));
92 void test_patch_print__add(void)
94 patch_print_from_patchfile(PATCH_ADD_ORIGINAL
,
95 strlen(PATCH_ADD_ORIGINAL
));
98 void test_patch_print__delete(void)
100 patch_print_from_patchfile(PATCH_DELETE_ORIGINAL
,
101 strlen(PATCH_DELETE_ORIGINAL
));
104 void test_patch_print__rename_exact(void)
106 patch_print_from_patchfile(PATCH_RENAME_EXACT
,
107 strlen(PATCH_RENAME_EXACT
));
110 void test_patch_print__rename_exact_with_mode(void)
112 patch_print_from_patchfile(PATCH_RENAME_EXACT_WITH_MODE
,
113 strlen(PATCH_RENAME_EXACT_WITH_MODE
));
116 void test_patch_print__rename_similar(void)
118 patch_print_from_patchfile(PATCH_RENAME_SIMILAR
,
119 strlen(PATCH_RENAME_SIMILAR
));
122 void test_patch_print__rename_exact_quotedname(void)
124 patch_print_from_patchfile(PATCH_RENAME_EXACT_QUOTEDNAME
,
125 strlen(PATCH_RENAME_EXACT_QUOTEDNAME
));
128 void test_patch_print__rename_similar_quotedname(void)
130 patch_print_from_patchfile(PATCH_RENAME_SIMILAR_QUOTEDNAME
,
131 strlen(PATCH_RENAME_SIMILAR_QUOTEDNAME
));
134 void test_patch_print__modechange_unchanged(void)
136 patch_print_from_patchfile(PATCH_MODECHANGE_UNCHANGED
,
137 strlen(PATCH_MODECHANGE_UNCHANGED
));
140 void test_patch_print__modechange_modified(void)
142 patch_print_from_patchfile(PATCH_MODECHANGE_MODIFIED
,
143 strlen(PATCH_MODECHANGE_MODIFIED
));
146 void test_patch_print__binary_literal(void)
148 patch_print_from_patchfile(PATCH_BINARY_LITERAL
,
149 strlen(PATCH_BINARY_LITERAL
));
152 void test_patch_print__binary_delta(void)
154 patch_print_from_patchfile(PATCH_BINARY_DELTA
,
155 strlen(PATCH_BINARY_DELTA
));
158 void test_patch_print__binary_add(void)
160 patch_print_from_patchfile(PATCH_BINARY_ADD
,
161 strlen(PATCH_BINARY_ADD
));
164 void test_patch_print__binary_delete(void)
166 patch_print_from_patchfile(PATCH_BINARY_DELETE
,
167 strlen(PATCH_BINARY_DELETE
));
170 void test_patch_print__not_reversible(void)
172 patch_print_from_patchfile(PATCH_BINARY_NOT_REVERSIBLE
,
173 strlen(PATCH_BINARY_NOT_REVERSIBLE
));
176 void test_patch_print__binary_not_shown(void)
178 patch_print_from_patchfile(PATCH_BINARY_NOT_PRINTED
,
179 strlen(PATCH_BINARY_NOT_PRINTED
));
182 void test_patch_print__binary_add_not_shown(void)
184 patch_print_from_patchfile(PATCH_ADD_BINARY_NOT_PRINTED
,
185 strlen(PATCH_ADD_BINARY_NOT_PRINTED
));