Author: julianfoad Date: Thu Jun 28 17:25:22 2018 New Revision: 1834628 URL: http://svn.apache.org/viewvc?rev=1834628&view=rev Log: Add a test for 'patch' changing an empty prop val to non-empty.
Bug report: https://lists.apache.org/thread.html/bf4ff333149efa3690c137235a53bd15327cd243a2639c2e7a564fbe@subversion/tests/cmdline/patch_tests.py3Cusers.subversion.apache.orgsubversion/tests/cmdline/patch_tests.py3E * subversion/tests/cmdline/patch_tests.py (patch_empty_prop): New test. (test_list): Run it. Modified: subversion/trunk/subversion/tests/cmdline/patch_tests.py Modified: subversion/trunk/subversion/tests/cmdline/patch_tests.py URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/patch_tests.py?rev=1834628&r1=1834627&r2=1834628&view=diff ============================================================================== --- subversion/trunk/subversion/tests/cmdline/patch_tests.py (original) +++ subversion/trunk/subversion/tests/cmdline/patch_tests.py Thu Jun 28 17:25:22 2018 @@ -7853,6 +7853,65 @@ def patch_mergeinfo_in_regular_prop_form [], True, True, '--strip', strip_count) +def patch_empty_prop(sbox): + "patch empty prop" + sbox.build(empty=True) + was_cwd = os.getcwd() + os.chdir(sbox.wc_dir) + sbox.wc_dir = '' + wc_dir = '' + + # start with a file with an empty prop + sbox.simple_add_text('', 'f') + sbox.simple_propset('p', '', 'f') + sbox.simple_commit() + + # a patch that modifies the prop to a non-empty value + unidiff_patch = [ + "--- f\n", + "+++ f\n", + "\n", + "Property changes on: f\n", + "___________________________________________________________________\n", + "Modified: p\n", + "## -0,0 +1 ##\n", + "+v\n", + ] + + trailing_eol = False + if trailing_eol: + value = "v\n" + else: + value = "v" + unidiff_patch += ['\ No newline at end of property\n'] + + patch_file_path = sbox.get_tempname('my.patch') + svntest.main.file_write(patch_file_path, ''.join(unidiff_patch), 'wb') + + expected_output = [ + ' U %s\n' % sbox.ospath('f'), + ] + + expected_disk = svntest.wc.State(wc_dir, {}) + expected_disk.add({'f': Item(props={'p' : value})}) + expected_status = svntest.wc.State(wc_dir, {}) + expected_status.add({'f': Item(status=' M')}) + expected_skip = wc.State('', { }) + + svntest.actions.run_and_verify_patch(wc_dir, patch_file_path, + expected_output, + expected_disk, + expected_status, + expected_skip, + None, # expected err + 1, # check-props + False, # dry-run + ) + + svntest.actions.check_prop('p', wc_dir, [value.encode()]) + + os.chdir(was_cwd) + ######################################################################## #Run the tests @@ -7937,6 +7996,7 @@ test_list = [ None, patch_missed_trail, patch_merge, patch_mergeinfo_in_regular_prop_format, + patch_empty_prop, ] if __name__ == '__main__':
