Author: kotkov Date: Mon Nov 21 16:08:37 2022 New Revision: 1905440 URL: http://svn.apache.org/viewvc?rev=1905440&view=rev Log: On the 'pristines-on-demand-on-mwf' branch: Generalize the dedicated testing module so that it would explicitly test both the --store-pristine=yes and --store-pristine=no modes.
* subversion/tests/cmdline/pristines_on_demand_tests.py: Rename this… * subversion/tests/cmdline/store_pristine_tests.py: …into this. (simple_checkout_with_pristine, simple_checkout_without_pristine, simple_commit_with_pristine, simple_commit_without_pristine, simple_update_with_pristine, simple_update_without_pristine, simple_status_with_pristine, simple_status_without_pristine, simple_diff_with_pristine, simple_diff_without_pristine, simple_revert_with_pristine, simple_revert_without_pristine, update_modified_file_with_pristine, update_modified_file_without_pristine): Run these new basic tests in both modes. Keep them as separate copies, because we might have some differences between how two modes are tested. Added: subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/store_pristine_tests.py - copied, changed from r1905439, subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/pristines_on_demand_tests.py Removed: subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/pristines_on_demand_tests.py Copied: subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/store_pristine_tests.py (from r1905439, subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/pristines_on_demand_tests.py) URL: http://svn.apache.org/viewvc/subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/store_pristine_tests.py?p2=subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/store_pristine_tests.py&p1=subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/pristines_on_demand_tests.py&r1=1905439&r2=1905440&rev=1905440&view=diff ============================================================================== --- subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/pristines_on_demand_tests.py (original) +++ subversion/branches/pristines-on-demand-on-mwf/subversion/tests/cmdline/store_pristine_tests.py Mon Nov 21 16:08:37 2022 @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# pristines_on_demand_tests.py: testing pristines-on-demand +# store_pristine_tests.py: testing working copy pristine modes # # Subversion is a tool for revision control. # See https://subversion.apache.org for more information. @@ -42,9 +42,22 @@ Item = svntest.wc.StateItem ###################################################################### # Tests +def simple_checkout_with_pristine(sbox): + "simple checkout with pristine" + + sbox.build(empty=True, create_wc=False) + expected_output = svntest.wc.State(sbox.wc_dir, {}) + expected_disk = svntest.wc.State('', {}) + svntest.actions.run_and_verify_checkout(sbox.repo_url, + sbox.wc_dir, + expected_output, + expected_disk, + [], + "--store-pristine=yes") + @SkipUnless(svntest.main.is_wc_pristines_on_demand_supported) -def simple_checkout(sbox): - "simple checkout with pristines-on-demand" +def simple_checkout_without_pristine(sbox): + "simple checkout without pristine" sbox.build(empty=True, create_wc=False) expected_output = svntest.wc.State(sbox.wc_dir, {}) @@ -56,9 +69,36 @@ def simple_checkout(sbox): [], "--store-pristine=no") +def simple_commit_with_pristine(sbox): + "simple commit with pristine" + + sbox.build(empty=True, create_wc=False) + expected_output = svntest.wc.State(sbox.wc_dir, {}) + expected_disk = svntest.wc.State('', {}) + svntest.actions.run_and_verify_checkout(sbox.repo_url, + sbox.wc_dir, + expected_output, + expected_disk, + [], + "--store-pristine=yes") + + sbox.simple_append('file', 'contents') + sbox.simple_add('file') + + expected_output = svntest.wc.State(sbox.wc_dir, { + 'file' : Item(verb='Adding'), + }) + expected_status = svntest.wc.State(sbox.wc_dir, { + '' : Item(status=' ', wc_rev=0), + 'file' : Item(status=' ', wc_rev=1), + }) + svntest.actions.run_and_verify_commit(sbox.wc_dir, + expected_output, + expected_status) + @SkipUnless(svntest.main.is_wc_pristines_on_demand_supported) -def simple_commit(sbox): - "simple commit with pristines-on-demand" +def simple_commit_without_pristine(sbox): + "simple commit without pristine" sbox.build(empty=True, create_wc=False) expected_output = svntest.wc.State(sbox.wc_dir, {}) @@ -84,9 +124,45 @@ def simple_commit(sbox): expected_output, expected_status) +def simple_update_with_pristine(sbox): + "simple update with pristine" + + sbox.build(empty=True, create_wc=False) + expected_output = svntest.wc.State(sbox.wc_dir, {}) + expected_wc = svntest.wc.State('', {}) + svntest.actions.run_and_verify_checkout(sbox.repo_url, + sbox.wc_dir, + expected_output, + expected_wc, + [], + "--store-pristine=yes") + sbox.simple_append('file', 'foo') + sbox.simple_add('file') + sbox.simple_commit(message='r1') + + sbox.simple_append('file', 'bar') + sbox.simple_commit(message='r2') + + expected_output = svntest.wc.State(sbox.wc_dir, { + 'file' : Item(status='U '), + }) + expected_disk = svntest.wc.State('', { + 'file' : Item(contents='foo'), + }) + expected_status = svntest.wc.State(sbox.wc_dir, { + '' : Item(status=' ', wc_rev=1), + 'file' : Item(status=' ', wc_rev=1), + }) + svntest.actions.run_and_verify_update(sbox.wc_dir, + expected_output, + expected_disk, + expected_status, + [], False, + '-r1', sbox.wc_dir) + @SkipUnless(svntest.main.is_wc_pristines_on_demand_supported) -def simple_update(sbox): - "simple update with pristines-on-demand" +def simple_update_without_pristine(sbox): + "simple update without pristine" sbox.build(empty=True, create_wc=False) expected_output = svntest.wc.State(sbox.wc_dir, {}) @@ -121,9 +197,59 @@ def simple_update(sbox): [], False, '-r1', sbox.wc_dir) +def simple_status_with_pristine(sbox): + "simple status with pristine" + + sbox.build(empty=True, create_wc=False) + expected_output = svntest.wc.State(sbox.wc_dir, {}) + expected_wc = svntest.wc.State('', {}) + svntest.actions.run_and_verify_checkout(sbox.repo_url, + sbox.wc_dir, + expected_output, + expected_wc, + [], + "--store-pristine=yes") + sbox.simple_append('file', 'foo') + sbox.simple_add('file') + + expected_status = svntest.wc.State(sbox.wc_dir, { + '' : Item(status=' ', wc_rev=0), + 'file' : Item(status='A ', wc_rev='-'), + }) + svntest.actions.run_and_verify_status(sbox.wc_dir, + expected_status) + + sbox.simple_commit(message='r1') + + expected_status = svntest.wc.State(sbox.wc_dir, { + '' : Item(status=' ', wc_rev=0), + 'file' : Item(status=' ', wc_rev=1), + }) + svntest.actions.run_and_verify_status(sbox.wc_dir, + expected_status) + + sbox.simple_append('file', 'bar') + + expected_status = svntest.wc.State(sbox.wc_dir, { + '' : Item(status=' ', wc_rev=0), + 'file' : Item(status='M ', wc_rev=1), + }) + svntest.actions.run_and_verify_status(sbox.wc_dir, + expected_status) + + # Change back to the unmodified contents + sbox.simple_append('file', 'foo', truncate=True) + + expected_status = svntest.wc.State(sbox.wc_dir, { + '' : Item(status=' ', wc_rev=0), + 'file' : Item(status=' ', wc_rev=1), + }) + svntest.actions.run_and_verify_status(sbox.wc_dir, + expected_status) + @SkipUnless(svntest.main.is_wc_pristines_on_demand_supported) -def simple_status(sbox): - "simple status with pristines-on-demand" +def simple_status_without_pristine(sbox): + "simple status without pristine" sbox.build(empty=True, create_wc=False) expected_output = svntest.wc.State(sbox.wc_dir, {}) @@ -172,9 +298,36 @@ def simple_status(sbox): svntest.actions.run_and_verify_status(sbox.wc_dir, expected_status) +def simple_diff_with_pristine(sbox): + "simple diff with pristine" + + sbox.build(empty=True, create_wc=False) + expected_output = svntest.wc.State(sbox.wc_dir, {}) + expected_wc = svntest.wc.State('', {}) + svntest.actions.run_and_verify_checkout(sbox.repo_url, + sbox.wc_dir, + expected_output, + expected_wc, + [], + "--store-pristine=yes") + sbox.simple_append('file', 'foo\n') + sbox.simple_add('file') + sbox.simple_commit(message='r1') + + sbox.simple_append('file', 'bar\n', truncate=True) + + diff_output = svntest.verify.make_diff_header( + sbox.ospath('file'), 'revision 1', 'working copy') + [ + "@@ -1 +1 @@\n", + "-foo\n", + "+bar\n" + ] + svntest.actions.run_and_verify_svn(diff_output, [], + 'diff', sbox.ospath('file')) + @SkipUnless(svntest.main.is_wc_pristines_on_demand_supported) -def simple_diff(sbox): - "simple diff with pristines-on-demand" +def simple_diff_without_pristine(sbox): + "simple diff without pristine" sbox.build(empty=True, create_wc=False) expected_output = svntest.wc.State(sbox.wc_dir, {}) @@ -200,9 +353,36 @@ def simple_diff(sbox): svntest.actions.run_and_verify_svn(diff_output, [], 'diff', sbox.ospath('file')) +def simple_revert_with_pristine(sbox): + "simple revert with pristine" + + sbox.build(empty=True, create_wc=False) + expected_output = svntest.wc.State(sbox.wc_dir, {}) + expected_wc = svntest.wc.State('', {}) + svntest.actions.run_and_verify_checkout(sbox.repo_url, + sbox.wc_dir, + expected_output, + expected_wc, + [], + "--store-pristine=yes") + sbox.simple_append('file', 'foo\n') + sbox.simple_add('file') + sbox.simple_commit(message='r1') + + sbox.simple_append('file', 'bar\n', truncate=True) + + svntest.actions.run_and_verify_revert([sbox.ospath('file')]) + + expected_status = svntest.wc.State(sbox.wc_dir, { + '' : Item(status=' ', wc_rev=0), + 'file' : Item(status=' ', wc_rev=1), + }) + svntest.actions.run_and_verify_status(sbox.wc_dir, + expected_status) + @SkipUnless(svntest.main.is_wc_pristines_on_demand_supported) -def simple_revert(sbox): - "simple revert with pristines-on-demand" +def simple_revert_without_pristine(sbox): + "simple revert without pristine" sbox.build(empty=True, create_wc=False) expected_output = svntest.wc.State(sbox.wc_dir, {}) @@ -228,9 +408,48 @@ def simple_revert(sbox): svntest.actions.run_and_verify_status(sbox.wc_dir, expected_status) +def update_modified_file_with_pristine(sbox): + "update locally modified file with pristine" + + sbox.build(empty=True, create_wc=False) + expected_output = svntest.wc.State(sbox.wc_dir, {}) + expected_wc = svntest.wc.State('', {}) + svntest.actions.run_and_verify_checkout(sbox.repo_url, + sbox.wc_dir, + expected_output, + expected_wc, + [], + "--store-pristine=yes") + sbox.simple_append('file', 'foo') + sbox.simple_add('file') + sbox.simple_commit(message='r1') + + sbox.simple_append('file', 'bar') + sbox.simple_commit(message='r2') + + sbox.simple_update(revision=1) + + # Make the same edit again so that the contents would merge. + sbox.simple_append('file', 'bar') + + expected_output = svntest.wc.State(sbox.wc_dir, { + 'file' : Item(status='G '), + }) + expected_disk = svntest.wc.State('', { + 'file' : Item(contents='foobar'), + }) + expected_status = svntest.wc.State(sbox.wc_dir, { + '' : Item(status=' ', wc_rev=2), + 'file' : Item(status=' ', wc_rev=2), + }) + svntest.actions.run_and_verify_update(sbox.wc_dir, + expected_output, + expected_disk, + expected_status) + @SkipUnless(svntest.main.is_wc_pristines_on_demand_supported) -def update_modified_file(sbox): - "update locally modified file" +def update_modified_file_without_pristine(sbox): + "update locally modified file without pristine" sbox.build(empty=True, create_wc=False) expected_output = svntest.wc.State(sbox.wc_dir, {}) @@ -274,13 +493,20 @@ def update_modified_file(sbox): # list all tests here, starting with None: test_list = [ None, - simple_checkout, - simple_commit, - simple_update, - simple_status, - simple_diff, - simple_revert, - update_modified_file, + simple_checkout_with_pristine, + simple_checkout_without_pristine, + simple_commit_with_pristine, + simple_commit_without_pristine, + simple_update_with_pristine, + simple_update_without_pristine, + simple_status_with_pristine, + simple_status_without_pristine, + simple_diff_with_pristine, + simple_diff_without_pristine, + simple_revert_with_pristine, + simple_revert_without_pristine, + update_modified_file_with_pristine, + update_modified_file_without_pristine, ] serial_only = True