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