Author: stsp
Date: Tue Sep 11 10:03:11 2012
New Revision: 1383334
URL: http://svn.apache.org/viewvc?rev=1383334&view=rev
Log:
On the 1.6.x-testsuite-apr-hash-order branch, merge the following revisions
from trunk, resolving conflicts: r1240619, r1241626, r1291429, r1291446,
r1291520, r1291680, r1291704, and r1291726.
Allows the following tests to pass reliably with APR-1.4.6:
diff_tests.py 14: diff text-bases against repository
switch_tests.py 23: mergeinfo does not elide post switch
update_tests.py 36: mergeinfo does not elide after update
svnlook_tests.py 1: test miscellaneous svnlook features
svnlook_tests.py 11: test 'svnlook * -t'
Modified:
subversion/branches/1.6.x-testsuite-apr-hash-order/ (props changed)
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/diff_tests.py
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svnlook_tests.py
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svntest/actions.py
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/switch_tests.py
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/update_tests.py
Propchange: subversion/branches/1.6.x-testsuite-apr-hash-order/
------------------------------------------------------------------------------
Merged
/subversion/trunk:r1240619,1241626,1291429,1291446,1291520,1291680,1291704,1291726
Modified:
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/diff_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/diff_tests.py?rev=1383334&r1=1383333&r2=1383334&view=diff
==============================================================================
---
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/diff_tests.py
(original)
+++
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/diff_tests.py
Tue Sep 11 10:03:11 2012
@@ -1024,8 +1024,10 @@ def diff_base_to_repos(sbox):
if not re_infoline.match(line):
list2.append(line)
- if list1 != list2:
- raise svntest.Failure
+ # Two files in diff may be in any order.
+ list1 = svntest.verify.UnorderedOutput(list1)
+
+ svntest.verify.compare_and_display_lines('', '', list1, list2)
#----------------------------------------------------------------------
Modified:
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svnlook_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svnlook_tests.py?rev=1383334&r1=1383333&r2=1383334&view=diff
==============================================================================
---
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svnlook_tests.py
(original)
+++
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svnlook_tests.py
Tue Sep 11 10:03:11 2012
@@ -105,35 +105,39 @@ def test_misc(sbox):
# the 'svnlook tree --full-paths' output if demanding the whole repository
treelist = run_svnlook('tree', repo_dir)
treelistfull = run_svnlook('tree', '--full-paths', repo_dir)
+
path = ''
- n = 0
+ treelistexpand = []
for entry in treelist:
len1 = len(entry)
len2 = len(entry.lstrip())
- path = path[0:2*(len1-len2)-1] + entry.strip()
- test = treelistfull[n].rstrip()
- if n != 0:
- test = "/" + test
- if not path == test:
- print("Unexpected result from tree with --full-paths:")
- print(" entry : %s" % entry.rstrip())
- print(" with --full-paths: %s" % treelistfull[n].rstrip())
- raise svntest.Failure
- n = n + 1
+ path = path[0:2*(len1-len2)-1] + entry.strip() + '\n'
+ if path == '/\n':
+ treelistexpand.append(path)
+ else:
+ treelistexpand.append(path[1:])
+
+ treelistexpand = svntest.verify.UnorderedOutput(treelistexpand)
+ svntest.verify.compare_and_display_lines('Unexpected result from tree', '',
+ treelistexpand, treelistfull)
# check if the 'svnlook tree' output is the ending of
# the 'svnlook tree --full-paths' output if demanding
# any part of the repository
- n = 0
treelist = run_svnlook('tree', repo_dir, '/A/B')
treelistfull = run_svnlook('tree', '--full-paths', repo_dir, '/A/B')
+
+ path = ''
+ treelistexpand = []
for entry in treelist:
- if not treelistfull[n].endswith(entry.lstrip()):
- print("Unexpected result from tree with --full-paths:")
- print(" entry : %s" % entry.rstrip())
- print(" with --full-paths: %s" % treelistfull[n].rstrip())
- raise svntest.Failure
- n = n + 1
+ len1 = len(entry)
+ len2 = len(entry.lstrip())
+ path = path[0:2*(len1-len2)] + entry.strip() + '\n'
+ treelistexpand.append('/A/' + path)
+
+ treelistexpand = svntest.verify.UnorderedOutput(treelistexpand)
+ svntest.verify.compare_and_display_lines('Unexpected result from tree', '',
+ treelistexpand, treelistfull)
treelist = run_svnlook('tree', repo_dir, '/')
if treelist[0] != '/\n':
@@ -621,7 +625,7 @@ fp.close()"""
# internal property, not really expected
' svn:check-locks\n',
' bogus_rev_prop\n', ' svn:date\n']
- verify_logfile(logfilepath, expected_data)
+ verify_logfile(logfilepath, svntest.verify.UnorderedOutput(expected_data))
########################################################################
# Run the tests
Modified:
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svntest/actions.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svntest/actions.py?rev=1383334&r1=1383333&r2=1383334&view=diff
==============================================================================
---
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svntest/actions.py
(original)
+++
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/svntest/actions.py
Tue Sep 11 10:03:11 2012
@@ -902,13 +902,21 @@ def run_and_verify_merge2(dir, rev1, rev
if dry_run and out != out_dry:
# Due to the way ra_serf works, it's possible that the dry-run and
# real merge operations did the same thing, but the output came in
- # a different order. Let's see if maybe that's the case.
+ # a different order. Let's see if maybe that's the case by comparing
+ # the outputs as unordered sets rather than as lists.
#
- # NOTE: Would be nice to limit this dance to serf tests only, but...
- out_copy = out[:]
- out_dry_copy = out_dry[:]
- out_copy.sort()
- out_dry_copy.sort()
+ # This now happens for other RA layers with modern APR because the
+ # hash order now varies.
+ #
+ # The different orders of the real and dry-run merges may cause
+ # the "Merging rX through rY into" lines to be duplicated a
+ # different number of times in the two outputs. The list-set
+ # conversion removes duplicates so these differences are ignored.
+ # It also removes "U some/path" duplicate lines. Perhaps we
+ # should avoid that?
+ out_copy = set(out[:])
+ out_dry_copy = set(out_dry[:])
+
if out_copy != out_dry_copy:
print("=============================================================")
print("Merge outputs differ")
Modified:
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/switch_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/switch_tests.py?rev=1383334&r1=1383333&r2=1383334&view=diff
==============================================================================
---
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/switch_tests.py
(original)
+++
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/switch_tests.py
Tue Sep 11 10:03:11 2012
@@ -1541,33 +1541,29 @@ def mergeinfo_switch_elision(sbox):
beta_path = os.path.join(wc_dir, "A", "B", "E", "beta")
# Make branches A/B_COPY_1 and A/B_COPY_2
- svntest.actions.run_and_verify_svn(
- None,
- ["A " + os.path.join(wc_dir, "A", "B_COPY_1", "lambda") + "\n",
+ expected_stdout = svntest.verify.UnorderedOutput([
+ "A " + os.path.join(wc_dir, "A", "B_COPY_1", "lambda") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY_1", "E") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY_1", "E", "alpha") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY_1", "E", "beta") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY_1", "F") + "\n",
"Checked out revision 1.\n",
- "A " + B_COPY_1_path + "\n"],
- [],
- 'copy',
- sbox.repo_url + "/A/B",
- B_COPY_1_path)
-
- svntest.actions.run_and_verify_svn(
- None,
- ["A " + os.path.join(wc_dir, "A", "B_COPY_2", "lambda") + "\n",
+ "A " + B_COPY_1_path + "\n",
+ ])
+ svntest.actions.run_and_verify_svn(None, expected_stdout, [], 'copy',
+ sbox.repo_url + "/A/B", B_COPY_1_path)
+
+ expected_stdout = svntest.verify.UnorderedOutput([
+ "A " + os.path.join(wc_dir, "A", "B_COPY_2", "lambda") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY_2", "E") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY_2", "E", "alpha") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY_2", "E", "beta") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY_2", "F") + "\n",
"Checked out revision 1.\n",
- "A " + B_COPY_2_path + "\n"],
- [],
- 'copy',
- sbox.repo_url + "/A/B",
- B_COPY_2_path)
+ "A " + B_COPY_2_path + "\n",
+ ])
+ svntest.actions.run_and_verify_svn(None, expected_stdout, [], 'copy',
+ sbox.repo_url + "/A/B", B_COPY_2_path)
expected_output = svntest.wc.State(wc_dir, {
'A/B_COPY_1' : Item(verb='Adding'),
Modified:
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/update_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/update_tests.py?rev=1383334&r1=1383333&r2=1383334&view=diff
==============================================================================
---
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/update_tests.py
(original)
+++
subversion/branches/1.6.x-testsuite-apr-hash-order/subversion/tests/cmdline/update_tests.py
Tue Sep 11 10:03:11 2012
@@ -2849,19 +2849,17 @@ def mergeinfo_update_elision(sbox):
lambda_path = os.path.join(wc_dir, "A", "B", "lambda")
# Make a branch A/B_COPY
- svntest.actions.run_and_verify_svn(
- None,
- ["A " + os.path.join(wc_dir, "A", "B_COPY", "lambda") + "\n",
+ expected_stdout = svntest.verify.UnorderedOutput([
+ "A " + os.path.join(wc_dir, "A", "B_COPY", "lambda") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY", "E") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY", "E", "alpha") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY", "E", "beta") + "\n",
"A " + os.path.join(wc_dir, "A", "B_COPY", "F") + "\n",
"Checked out revision 1.\n",
- "A " + B_COPY_path + "\n"],
- [],
- 'copy',
- sbox.repo_url + "/A/B",
- B_COPY_path)
+ "A " + B_COPY_path + "\n",
+ ])
+ svntest.actions.run_and_verify_svn(None, expected_stdout, [], 'copy',
+ sbox.repo_url + "/A/B", B_COPY_path)
expected_output = wc.State(wc_dir, {'A/B_COPY' : Item(verb='Adding')})
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)