#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)); }