| #include "clar_libgit2.h" |
| #include "patch.h" |
| #include "patch_parse.h" |
| |
| #include "patch_common.h" |
| |
| |
| /* sanity check the round-trip of patch parsing: ensure that we can parse |
| * and then print a variety of patch files. |
| */ |
| |
| void patch_print_from_patchfile(const char *data, size_t len) |
| { |
| git_patch *patch; |
| git_buf buf = GIT_BUF_INIT; |
| |
| cl_git_pass(git_patch_from_buffer(&patch, data, len, NULL)); |
| cl_git_pass(git_patch_to_buf(&buf, patch)); |
| |
| cl_assert_equal_s(data, buf.ptr); |
| |
| git_patch_free(patch); |
| git_buf_free(&buf); |
| } |
| |
| void test_patch_print__change_middle(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_CHANGE_MIDDLE, |
| strlen(PATCH_ORIGINAL_TO_CHANGE_MIDDLE)); |
| } |
| |
| void test_patch_print__change_middle_nocontext(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_CHANGE_MIDDLE_NOCONTEXT, |
| strlen(PATCH_ORIGINAL_TO_CHANGE_MIDDLE_NOCONTEXT)); |
| } |
| |
| void test_patch_print__change_firstline(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_CHANGE_FIRSTLINE, |
| strlen(PATCH_ORIGINAL_TO_CHANGE_FIRSTLINE)); |
| } |
| |
| void test_patch_print__change_lastline(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_CHANGE_LASTLINE, |
| strlen(PATCH_ORIGINAL_TO_CHANGE_LASTLINE)); |
| } |
| |
| void test_patch_print__prepend(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_PREPEND, |
| strlen(PATCH_ORIGINAL_TO_PREPEND)); |
| } |
| |
| void test_patch_print__prepend_nocontext(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_PREPEND_NOCONTEXT, |
| strlen(PATCH_ORIGINAL_TO_PREPEND_NOCONTEXT)); |
| } |
| |
| void test_patch_print__append(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_APPEND, |
| strlen(PATCH_ORIGINAL_TO_APPEND)); |
| } |
| |
| void test_patch_print__append_nocontext(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_APPEND_NOCONTEXT, |
| strlen(PATCH_ORIGINAL_TO_APPEND_NOCONTEXT)); |
| } |
| |
| void test_patch_print__prepend_and_append(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_PREPEND_AND_APPEND, |
| strlen(PATCH_ORIGINAL_TO_PREPEND_AND_APPEND)); |
| } |
| |
| void test_patch_print__to_empty_file(void) |
| { |
| patch_print_from_patchfile(PATCH_ORIGINAL_TO_EMPTY_FILE, |
| strlen(PATCH_ORIGINAL_TO_EMPTY_FILE)); |
| } |
| |
| void test_patch_print__from_empty_file(void) |
| { |
| patch_print_from_patchfile(PATCH_EMPTY_FILE_TO_ORIGINAL, |
| strlen(PATCH_EMPTY_FILE_TO_ORIGINAL)); |
| } |
| |
| void test_patch_print__add(void) |
| { |
| patch_print_from_patchfile(PATCH_ADD_ORIGINAL, |
| strlen(PATCH_ADD_ORIGINAL)); |
| } |
| |
| void test_patch_print__delete(void) |
| { |
| patch_print_from_patchfile(PATCH_DELETE_ORIGINAL, |
| strlen(PATCH_DELETE_ORIGINAL)); |
| } |
| |
| void test_patch_print__rename_exact(void) |
| { |
| patch_print_from_patchfile(PATCH_RENAME_EXACT, |
| strlen(PATCH_RENAME_EXACT)); |
| } |
| |
| void test_patch_print__rename_similar(void) |
| { |
| patch_print_from_patchfile(PATCH_RENAME_SIMILAR, |
| strlen(PATCH_RENAME_SIMILAR)); |
| } |
| |
| void test_patch_print__rename_exact_quotedname(void) |
| { |
| patch_print_from_patchfile(PATCH_RENAME_EXACT_QUOTEDNAME, |
| strlen(PATCH_RENAME_EXACT_QUOTEDNAME)); |
| } |
| |
| void test_patch_print__rename_similar_quotedname(void) |
| { |
| patch_print_from_patchfile(PATCH_RENAME_SIMILAR_QUOTEDNAME, |
| strlen(PATCH_RENAME_SIMILAR_QUOTEDNAME)); |
| } |
| |
| void test_patch_print__modechange_unchanged(void) |
| { |
| patch_print_from_patchfile(PATCH_MODECHANGE_UNCHANGED, |
| strlen(PATCH_MODECHANGE_UNCHANGED)); |
| } |
| |
| void test_patch_print__modechange_modified(void) |
| { |
| patch_print_from_patchfile(PATCH_MODECHANGE_MODIFIED, |
| strlen(PATCH_MODECHANGE_MODIFIED)); |
| } |
| |
| void test_patch_print__binary_literal(void) |
| { |
| patch_print_from_patchfile(PATCH_BINARY_LITERAL, |
| strlen(PATCH_BINARY_LITERAL)); |
| } |
| |
| void test_patch_print__binary_delta(void) |
| { |
| patch_print_from_patchfile(PATCH_BINARY_DELTA, |
| strlen(PATCH_BINARY_DELTA)); |
| } |
| |
| void test_patch_print__binary_add(void) |
| { |
| patch_print_from_patchfile(PATCH_BINARY_ADD, |
| strlen(PATCH_BINARY_ADD)); |
| } |
| |
| void test_patch_print__binary_delete(void) |
| { |
| patch_print_from_patchfile(PATCH_BINARY_DELETE, |
| strlen(PATCH_BINARY_DELETE)); |
| } |
| |
| void test_patch_print__not_reversible(void) |
| { |
| patch_print_from_patchfile(PATCH_BINARY_NOT_REVERSIBLE, |
| strlen(PATCH_BINARY_NOT_REVERSIBLE)); |
| } |
| |
| void test_patch_print__binary_not_shown(void) |
| { |
| patch_print_from_patchfile(PATCH_BINARY_NOT_PRINTED, |
| strlen(PATCH_BINARY_NOT_PRINTED)); |
| } |