You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2013/02/08 20:28:28 UTC

svn commit: r1444198 - in /subversion/trunk/subversion/tests/cmdline: depth_tests.py diff_tests.py prop_tests.py

Author: julianfoad
Date: Fri Feb  8 19:28:28 2013
New Revision: 1444198

URL: http://svn.apache.org/r1444198
Log:
Simplify the specification of expected outputs in some tests, without
changing the meaning, for maintainability and to prepare for a change to the
UnorderedOutput class.

These particular cases are cases where the set of expected lines was lacking
some duplicate lines, which the UnorderedOutput class currently doesn't care
about, and I'm preparing to make it care.

* subversion/tests/cmdline/depth_tests.py
  (diff_in_depthy_wc): Break the diff into named subsets instead of slicing
    a long array with magic numbers. Use diff-formatting helper functions.
    This gives us (correctly) two copies of 'No newline at end of property'
    in the expected output.

* subversion/tests/cmdline/diff_tests.py
  (diff_property_changes_to_base, diff_with_depth): The same. (Some of the
    magic numbers were wrong, but in ways that only meant we were missing
    some duplicate lines in the expected output, which didn't matter.)
    Refactor the code a bit more.

* subversion/tests/cmdline/prop_tests.py
  (propget_redirection): Calculate the expected huge property value instead
    of repeating its definition with only a tiny mechanical change. Explain
    why the expected value is not exactly the same as the value we set.

Modified:
    subversion/trunk/subversion/tests/cmdline/depth_tests.py
    subversion/trunk/subversion/tests/cmdline/diff_tests.py
    subversion/trunk/subversion/tests/cmdline/prop_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/depth_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/depth_tests.py?rev=1444198&r1=1444197&r2=1444198&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/depth_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/depth_tests.py Fri Feb  8 19:28:28 2013
@@ -1042,46 +1042,26 @@ def diff_in_depthy_wc(sbox):
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'commit', '-m', '', wc)
 
-  diff = [
-    "Index: A/mu\n",
-    "===================================================================\n",
-    "--- A/mu\t(revision 2)\n",
-    "+++ A/mu\t(working copy)\n",
+  from diff_tests import make_diff_header, make_diff_prop_header
+  from diff_tests import make_diff_prop_deleted, make_diff_prop_added
+  diff_mu = make_diff_header('A/mu', 'revision 2', 'working copy') + [
     "@@ -1 +1 @@\n",
     "-new text\n",
-    "+This is the file 'mu'.\n",
-    "Index: A\n",
-    "===================================================================\n",
-    "--- A\t(revision 2)\n",
-    "+++ A\t(working copy)\n",
-    "\n",
-    "Property changes on: A\n",
-    "___________________________________________________________________\n",
-    "Deleted: bar\n",
-    "## -1 +0,0 ##\n",
-    "-bar-val\n",
-    "Index: iota\n",
-    "===================================================================\n",
-    "--- iota\t(revision 2)\n",
-    "+++ iota\t(working copy)\n",
+    "+This is the file 'mu'.\n"]
+  diff_A = make_diff_header('A', 'revision 2', 'working copy') + \
+           make_diff_prop_header('A') + \
+           make_diff_prop_deleted('bar', 'bar-val')
+  diff_iota = make_diff_header('iota', 'revision 2', 'working copy') + [
     "@@ -1 +1 @@\n",
     "-new text\n",
-    "+This is the file 'iota'.\n",
-    "Index: .\n",
-    "===================================================================\n",
-    "--- .\t(revision 2)\n",
-    "+++ .\t(working copy)\n",
-    "\n",
-    "Property changes on: .\n",
-    "___________________________________________________________________\n",
-    "Deleted: foo\n",
-    "## -1 +0,0 ##\n",
-    "-foo-val\n",
-    "\\ No newline at end of property\n"]
+    "+This is the file 'iota'.\n"]
+  diff_dot = make_diff_header('.', 'revision 2', 'working copy') + \
+             make_diff_prop_header('.') + \
+             make_diff_prop_deleted('foo', 'foo-val')
 
   os.chdir(wc_empty)
 
-  expected_output = svntest.verify.UnorderedOutput(diff[24:])
+  expected_output = svntest.verify.UnorderedOutput(diff_dot)
   # The diff should contain only the propchange on '.'
   svntest.actions.run_and_verify_svn(None, expected_output, [],
                                      'diff', '-rHEAD')
@@ -1091,11 +1071,11 @@ def diff_in_depthy_wc(sbox):
                                      '--set-depth', 'files', '-r1')
   # The diff should contain only the propchange on '.' and the
   # contents change on iota.
-  expected_output = svntest.verify.UnorderedOutput(diff[17:])
+  expected_output = svntest.verify.UnorderedOutput(diff_iota + diff_dot)
   svntest.actions.run_and_verify_svn(None, expected_output, [],
                                      'diff', '-rHEAD')
   # Do a diff at --depth empty.
-  expected_output = svntest.verify.UnorderedOutput(diff[24:])
+  expected_output = svntest.verify.UnorderedOutput(diff_dot)
   svntest.actions.run_and_verify_svn(None, expected_output, [],
                                      'diff', '--depth', 'empty', '-rHEAD')
 
@@ -1104,11 +1084,12 @@ def diff_in_depthy_wc(sbox):
                                      '--set-depth', 'immediates', '-r1')
   # The diff should contain the propchanges on '.' and 'A' and the
   # contents change on iota.
-  expected_output = svntest.verify.UnorderedOutput(diff[7:])
+  expected_output = svntest.verify.UnorderedOutput(diff_A + diff_iota +
+                                                   diff_dot)
   svntest.actions.run_and_verify_svn(None, expected_output, [],
                                     'diff', '-rHEAD')
   # Do a diff at --depth files.
-  expected_output = svntest.verify.UnorderedOutput(diff[17:])
+  expected_output = svntest.verify.UnorderedOutput(diff_iota + diff_dot)
   svntest.actions.run_and_verify_svn(None, expected_output, [],
                                      'diff', '--depth', 'files', '-rHEAD')
 
@@ -1117,11 +1098,12 @@ def diff_in_depthy_wc(sbox):
                                      '--set-depth', 'files', '-r1', 'A')
   # The diff should contain everything but the contents change on
   # gamma (which does not exist in this working copy).
-  expected_output = svntest.verify.UnorderedOutput(diff)
+  expected_output = svntest.verify.UnorderedOutput(diff_mu + diff_A +
+                                                   diff_iota + diff_dot)
   svntest.actions.run_and_verify_svn(None, expected_output, [],
                                      'diff', '-rHEAD')
   # Do a diff at --depth immediates.
-  expected_output = svntest.verify.UnorderedOutput(diff[7:])
+  expected_output = svntest.verify.UnorderedOutput(diff_A + diff_iota +                                                                                diff_dot)
   svntest.actions.run_and_verify_svn(None, expected_output, [],
                                     'diff', '--depth', 'immediates', '-rHEAD')
 

Modified: subversion/trunk/subversion/tests/cmdline/diff_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/diff_tests.py?rev=1444198&r1=1444197&r2=1444198&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/diff_tests.py Fri Feb  8 19:28:28 2013
@@ -2106,45 +2106,36 @@ def diff_property_changes_to_base(sbox):
   sbox.build()
   wc_dir = sbox.wc_dir
 
-
-  add_diff = \
-    make_diff_prop_header("A") + \
-    make_diff_prop_added("dirprop", "r2value") + \
-    make_diff_prop_header("iota") + \
-    make_diff_prop_added("fileprop", "r2value")
-
-  del_diff = \
-    make_diff_prop_header("A") + \
-    make_diff_prop_deleted("dirprop", "r2value") + \
-    make_diff_prop_header("iota") + \
-    make_diff_prop_deleted("fileprop", "r2value")
-
-
-  expected_output_r1_r2 = list(make_diff_header('A', 'revision 1', 'revision 2')
-                               + add_diff[:6]
-                               + make_diff_header('iota', 'revision 1',
-                                                   'revision 2')
-                               + add_diff[7:])
-
-  expected_output_r2_r1 = list(make_diff_header('A', 'revision 2',
-                                                'revision 1')
-                               + del_diff[:6]
-                               + make_diff_header('iota', 'revision 2',
-                                                  'revision 1')
-                               + del_diff[7:])
-
-  expected_output_r1 = list(make_diff_header('A', 'revision 1',
-                                             'working copy')
-                            + add_diff[:6]
-                            + make_diff_header('iota', 'revision 1',
-                                               'working copy')
-                            + add_diff[7:])
-  expected_output_base_r1 = list(make_diff_header('A', 'working copy',
-                                                  'revision 1')
-                                 + del_diff[:6]
-                                 + make_diff_header('iota', 'working copy',
-                                                    'revision 1')
-                                 + del_diff[7:])
+  # Each of these returns an expected diff as a list of lines.
+  def add_diff_A(r1, r2):
+    return (make_diff_header("A", r1, r2) +
+            make_diff_prop_header("A") +
+            make_diff_prop_added("dirprop", "r2value"))
+
+  def add_diff_iota(r1, r2):
+    return (make_diff_header("iota", r1, r2) +
+            make_diff_prop_header("iota") +
+            make_diff_prop_added("fileprop", "r2value"))
+
+  def del_diff_A(r1, r2):
+    return (make_diff_header("A", r1, r2) +
+            make_diff_prop_header("A") +
+            make_diff_prop_deleted("dirprop", "r2value"))
+
+  def del_diff_iota(r1, r2):
+    return (make_diff_header("iota", r1, r2) +
+            make_diff_prop_header("iota") +
+            make_diff_prop_deleted("fileprop", "r2value"))
+
+  # Each of these is an expected diff as a list of lines.
+  expected_output_r1_r2 =   (add_diff_A('revision 1', 'revision 2') +
+                             add_diff_iota('revision 1', 'revision 2'))
+  expected_output_r2_r1 =   (del_diff_A('revision 2', 'revision 1') +
+                             del_diff_iota('revision 2', 'revision 1'))
+  expected_output_r1 =      (add_diff_A('revision 1', 'working copy') +
+                             add_diff_iota('revision 1', 'working copy'))
+  expected_output_base_r1 = (del_diff_A('working copy', 'revision 1') +
+                             del_diff_iota('working copy', 'revision 1'))
 
   os.chdir(sbox.wc_dir)
 
@@ -2952,146 +2943,117 @@ def diff_with_depth(sbox):
   "test diffs at various depths"
 
   sbox.build()
-  B_path = os.path.join('A', 'B')
-
-  diff = make_diff_prop_header(".") + \
-         make_diff_prop_added("foo1", "bar1") + \
-         make_diff_prop_header("iota") + \
-         make_diff_prop_added("foo2", "bar2") + \
-         make_diff_prop_header("A") + \
-         make_diff_prop_added("foo3", "bar3") + \
-         make_diff_prop_header("A/B") + \
-         make_diff_prop_added("foo4", "bar4")
-
-  dot_header = make_diff_header(".", "revision 1", "working copy")
-  iota_header = make_diff_header('iota', "revision 1", "working copy")
-  A_header = make_diff_header('A', "revision 1", "working copy")
-  B_header = make_diff_header(B_path, "revision 1", "working copy")
-
-  expected_empty = svntest.verify.UnorderedOutput(dot_header + diff[:7])
-  expected_files = svntest.verify.UnorderedOutput(dot_header + diff[:7]
-                                                  + iota_header + diff[8:14])
-  expected_immediates = svntest.verify.UnorderedOutput(dot_header + diff[:7]
-                                                       + iota_header
-                                                       + diff[8:14]
-                                                       + A_header + diff[15:21])
-  expected_infinity = svntest.verify.UnorderedOutput(dot_header + diff[:7]
-                                                       + iota_header
-                                                       + diff[8:14]
-                                                       + A_header + diff[15:21]
-                                                       + B_header + diff[22:])
-
   os.chdir(sbox.wc_dir)
+  sbox.wc_dir = ''
+  B_path = os.path.join('A', 'B')
 
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'propset',
-                                     'foo1', 'bar1', '.')
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'propset',
-                                     'foo2', 'bar2', 'iota')
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'propset',
-                                     'foo3', 'bar3', 'A')
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'propset',
-                                     'foo4', 'bar4', os.path.join('A', 'B'))
+  sbox.simple_propset('foo1', 'bar1', '.')
+  sbox.simple_propset('foo2', 'bar2', 'iota')
+  sbox.simple_propset('foo3', 'bar3', 'A')
+  sbox.simple_propset('foo4', 'bar4', 'A/B')
+
+  def create_expected_diffs(r1, r2):
+    diff_dot = \
+      make_diff_header(".", r1, r2) + \
+      make_diff_prop_header(".") + \
+      make_diff_prop_added("foo1", "bar1")
+    diff_iota = \
+      make_diff_header('iota', r1, r2) + \
+      make_diff_prop_header("iota") + \
+      make_diff_prop_added("foo2", "bar2")
+    diff_A = \
+      make_diff_header('A', r1, r2) + \
+      make_diff_prop_header("A") + \
+      make_diff_prop_added("foo3", "bar3")
+    diff_AB = \
+      make_diff_header(B_path, r1, r2) + \
+      make_diff_prop_header("A/B") + \
+      make_diff_prop_added("foo4", "bar4")
+
+    expected = {}
+    expected['empty'] =      svntest.verify.UnorderedOutput(diff_dot)
+    expected['files'] =      svntest.verify.UnorderedOutput(diff_dot +
+                                                            diff_iota)
+    expected['immediates'] = svntest.verify.UnorderedOutput(diff_dot +
+                                                            diff_iota +
+                                                            diff_A)
+    expected['infinity'] =   svntest.verify.UnorderedOutput(diff_dot +
+                                                            diff_iota +
+                                                            diff_A +
+                                                            diff_AB)
+    return expected
 
   # Test wc-wc diff.
-  svntest.actions.run_and_verify_svn(None, expected_empty, [],
-                                     'diff', '--depth', 'empty')
-  svntest.actions.run_and_verify_svn(None, expected_files, [],
-                                     'diff', '--depth', 'files')
-  svntest.actions.run_and_verify_svn(None, expected_immediates, [],
-                                     'diff', '--depth', 'immediates')
-  svntest.actions.run_and_verify_svn(None, expected_infinity, [],
-                                     'diff', '--depth', 'infinity')
+  expected_diffs = create_expected_diffs("revision 1", "working copy")
+  for depth in ['empty', 'files', 'immediates', 'infinity']:
+    svntest.actions.run_and_verify_svn(None, expected_diffs[depth], [],
+                                       'diff', '--depth', depth)
 
   # Commit the changes.
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'ci', '-m', '')
 
-  dot_header = make_diff_header(".", "revision 1", "revision 2")
-  iota_header = make_diff_header('iota', "revision 1", "revision 2")
-  A_header = make_diff_header('A', "revision 1", "revision 2")
-  B_header = make_diff_header(B_path, "revision 1", "revision 2")
-
-  expected_empty = svntest.verify.UnorderedOutput(dot_header + diff[:7])
-  expected_files = svntest.verify.UnorderedOutput(dot_header + diff[:7]
-                                                  + iota_header + diff[8:14])
-  expected_immediates = svntest.verify.UnorderedOutput(dot_header + diff[:7]
-                                                       + iota_header
-                                                       + diff[8:14]
-                                                       + A_header + diff[15:21])
-  expected_infinity = svntest.verify.UnorderedOutput(dot_header + diff[:6]
-                                                       + iota_header
-                                                       + diff[8:14]
-                                                       + A_header + diff[15:21]
-                                                       + B_header + diff[22:])
-
   # Test repos-repos diff.
-  svntest.actions.run_and_verify_svn(None, expected_empty, [],
-                                     'diff', '-c2', '--depth', 'empty')
-  svntest.actions.run_and_verify_svn(None, expected_files, [],
-                                     'diff', '-c2', '--depth', 'files')
-  svntest.actions.run_and_verify_svn(None, expected_immediates, [],
-                                     'diff', '-c2', '--depth', 'immediates')
-  svntest.actions.run_and_verify_svn(None, expected_infinity, [],
-                                     'diff', '-c2', '--depth', 'infinity')
-
-  diff_wc_repos = \
-    make_diff_header("A/B", "revision 2", "working copy") + \
-    make_diff_prop_header("A/B") + \
-    make_diff_prop_modified("foo4", "bar4", "baz4") + \
-    make_diff_header("A", "revision 2", "working copy") + \
-    make_diff_prop_header("A") + \
-    make_diff_prop_modified("foo3", "bar3", "baz3") + \
-    make_diff_header("A/mu", "revision 1", "working copy") + [
-    "@@ -1 +1,2 @@\n",
-    " This is the file 'mu'.\n",
-    "+new text\n",
-    ] + make_diff_header("iota", "revision 2", "working copy") + [
-    "@@ -1 +1,2 @@\n",
-    " This is the file 'iota'.\n",
-    "+new text\n",
-    ] + make_diff_prop_header("iota") + \
-    make_diff_prop_modified("foo2", "bar2", "baz2") + \
-    make_diff_header(".", "revision 2", "working copy") + \
-    make_diff_prop_header(".") + \
-    make_diff_prop_modified("foo1", "bar1", "baz1")
-
-  expected_empty = svntest.verify.UnorderedOutput(diff_wc_repos[49:])
-  expected_files = svntest.verify.UnorderedOutput(diff_wc_repos[33:])
-  expected_immediates = svntest.verify.UnorderedOutput(diff_wc_repos[13:26]
-                                                       +diff_wc_repos[33:])
-  expected_infinity = svntest.verify.UnorderedOutput(diff_wc_repos[:])
+  expected_diffs = create_expected_diffs("revision 1", "revision 2")
+  for depth in ['empty', 'files', 'immediates', 'infinity']:
+    svntest.actions.run_and_verify_svn(None, expected_diffs[depth], [],
+                                       'diff', '-c2', '--depth', depth)
+
+  def create_expected_repos_wc_diffs():
+    diff_AB = \
+      make_diff_header("A/B", "revision 2", "working copy") + \
+      make_diff_prop_header("A/B") + \
+      make_diff_prop_modified("foo4", "bar4", "baz4")
+    diff_A = \
+      make_diff_header("A", "revision 2", "working copy") + \
+      make_diff_prop_header("A") + \
+      make_diff_prop_modified("foo3", "bar3", "baz3")
+    diff_mu = \
+      make_diff_header("A/mu", "revision 1", "working copy") + [
+      "@@ -1 +1,2 @@\n",
+      " This is the file 'mu'.\n",
+      "+new text\n",]
+    diff_iota = \
+      make_diff_header("iota", "revision 2", "working copy") + [
+      "@@ -1 +1,2 @@\n",
+      " This is the file 'iota'.\n",
+      "+new text\n",
+      ] + make_diff_prop_header("iota") + \
+      make_diff_prop_modified("foo2", "bar2", "baz2")
+    diff_dot = \
+      make_diff_header(".", "revision 2", "working copy") + \
+      make_diff_prop_header(".") + \
+      make_diff_prop_modified("foo1", "bar1", "baz1")
+
+    expected = {}
+    expected['empty'] = svntest.verify.UnorderedOutput(diff_dot)
+    expected['files'] = svntest.verify.UnorderedOutput(diff_iota +
+                                                       diff_dot)
+    expected['immediates'] = svntest.verify.UnorderedOutput(diff_A +
+                                                            diff_iota +
+                                                            diff_dot)
+    expected['infinity'] = svntest.verify.UnorderedOutput(diff_AB +
+                                                          diff_A +
+                                                          diff_mu +
+                                                          diff_iota +
+                                                          diff_dot)
+    return expected
 
   svntest.actions.run_and_verify_svn(None, None, [],
                                      'up', '-r1')
 
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'propset',
-                                     'foo1', 'baz1', '.')
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'propset',
-                                     'foo2', 'baz2', 'iota')
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'propset',
-                                     'foo3', 'baz3', 'A')
-  svntest.actions.run_and_verify_svn(None, None, [],
-                                     'propset',
-                                     'foo4', 'baz4', os.path.join('A', 'B'))
+  sbox.simple_propset('foo1', 'baz1', '.')
+  sbox.simple_propset('foo2', 'baz2', 'iota')
+  sbox.simple_propset('foo3', 'baz3', 'A')
+  sbox.simple_propset('foo4', 'baz4', 'A/B')
   svntest.main.file_append(os.path.join('A', 'mu'), "new text\n")
   svntest.main.file_append('iota', "new text\n")
 
   # Test wc-repos diff.
-  svntest.actions.run_and_verify_svn(None, expected_empty, [],
-                                     'diff', '-rHEAD', '--depth', 'empty')
-  svntest.actions.run_and_verify_svn(None, expected_files, [],
-                                     'diff', '-rHEAD', '--depth', 'files')
-  svntest.actions.run_and_verify_svn(None, expected_immediates, [],
-                                     'diff', '-rHEAD', '--depth', 'immediates')
-  svntest.actions.run_and_verify_svn(None, expected_infinity, [],
-                                     'diff', '-rHEAD', '--depth', 'infinity')
+  expected_diffs = create_expected_repos_wc_diffs()
+  for depth in ['empty', 'files', 'immediates', 'infinity']:
+    svntest.actions.run_and_verify_svn(None, expected_diffs[depth], [],
+                                       'diff', '-rHEAD', '--depth', depth)
 
 # test for issue 2920: ignore eol-style on empty lines
 @Issue(2920)

Modified: subversion/trunk/subversion/tests/cmdline/prop_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/prop_tests.py?rev=1444198&r1=1444197&r2=1444198&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/prop_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/prop_tests.py Fri Feb  8 19:28:28 2013
@@ -2130,6 +2130,8 @@ def propget_redirection(sbox):
   # it refers to non-existent path-revs, but that is not relevant to
   # this test.  What matters is that it is a realistic 'big' mergeinfo
   # value (it is from Subversion's own 1.6.x branch in fact).
+  # Also, the syntax is wrong: every path should start with '/';
+  # Subversion currently silently corrects this.
   big_prop_val = "subversion/branches/1.5.x:872364-874936\n"           + \
   "subversion/branches/1.5.x-34184:874657-874741\n"                    + \
   "subversion/branches/1.5.x-34432:874744-874798\n"                    + \
@@ -2276,110 +2278,7 @@ def propget_redirection(sbox):
     # Everything below should appear three times since this same
     # mergeinfo value is set on three paths in the WC.
     "  svn:mergeinfo\n",
-    "    /subversion/branches/1.5.x:872364-874936\n",
-    "    /subversion/branches/1.5.x-34184:874657-874741\n",
-    "    /subversion/branches/1.5.x-34432:874744-874798\n",
-    "    /subversion/branches/1.5.x-issue3067:872184-872314\n",
-    "    /subversion/branches/1.5.x-issue3157:872165-872175\n",
-    "    /subversion/branches/1.5.x-issue3174:872178-872348\n",
-    "    /subversion/branches/1.5.x-r30215:870310,870312,870319,870362\n",
-    "    /subversion/branches/1.5.x-r30756:874853-874870\n",
-    "    /subversion/branches/1.5.x-r30868:870951-870970\n",
-    "    /subversion/branches/1.5.x-r31314:874476-874605\n",
-    "    /subversion/branches/1.5.x-r31516:871592-871649\n",
-    "    /subversion/branches/1.5.x-r32470:872546-872676\n",
-    "    /subversion/branches/1.5.x-r32968:873773-873872\n",
-    "    /subversion/branches/1.5.x-r33447:873527-873547\n",
-    "    /subversion/branches/1.5.x-r33465:873541-873549\n",
-    "    /subversion/branches/1.5.x-r33641:873880-873883\n",
-    "    /subversion/branches/1.5.x-r34050-followups:874639-874686\n",
-    "    /subversion/branches/1.5.x-r34487:874562-874581\n",
-    "    /subversion/branches/1.5.x-ra_serf-backports:872354-872626\n",
-    "    /subversion/branches/1.5.x-rb-test-fix:874916-874919\n",
-    "    /subversion/branches/1.5.x-reintegrate-improvements:874586-874922\n",
-    "    /subversion/branches/1.5.x-tests-pass:870925-870973\n",
-    "    /subversion/branches/dont-save-plaintext-passwords-by-default:"
-    "870728-871118\n",
-    "    /subversion/branches/gnome-keyring:870558-871410\n",
-    "    /subversion/branches/issue-3220-dev:872210-872226\n",
-    "    /subversion/branches/kwallet:870785-871314\n",
-    "    /subversion/branches/log-g-performance:870941-871032\n",
-    "    /subversion/branches/r30963-1.5.x:871056-871076\n",
-    "    /subversion/branches/reintegrate-improvements:873853-874164\n",
-    "    /subversion/branches/svn-mergeinfo-enhancements:870196\n",
-    "    /subversion/branches/svnpatch-diff:871905\n",
-    "    /subversion/trunk:869159-869165,869168-869181,869185,869188,869191,"
-    "869200-869201,869203-869207,869209-869224,869227-869238,869240-869244,"
-    "869248,869250-869260,869262-869263,869265,869267-869268,869272-869280,"
-    "869282-869325,869328-869330,869335,869341-869347,869351,869354-869355,"
-    "869358,869361-869377,869379-869381,869383-869417,869419-869422,869432-"
-    "869453,869455-869466,869471-869473,869475,869483,869486,869488-869489,"
-    "869491-869497,869499-869500,869503,869506-869508,869510-869521,869523-"
-    "869540,869542-869552,869556,869558,869560-869561,869563,869565,869567,"
-    "869570,869572,869582,869601-869602,869605,869607,869613-869614,869616,"
-    "869618,869620,869625,869627,869630,869633,869639,869641-869643,869645-"
-    "869652,869655,869657,869665,869668,869674,869677,869681,869685,869687-"
-    "869688,869693,869697,869699-869700,869704-869708,869716,869719,869722,"
-    "869724,869730,869733-869734,869737-869740,869745-869746,869751-869754,"
-    "869766,869812-869813,869815-869818,869820,869825,869837,869841,869843-"
-    "869844,869858,869860-869861,869871,869875,869889,869895,869898,869902,"
-    "869907,869909,869926,869928-869929,869931-869933,869942-869943,869950,"
-    "869952,869957-869958,869969,869972,869974,869988,869994,869996,869999,"
-    "870004,870013-870014,870016,870024,870032,870036,870039,870041-870043,"
-    "870054,870060,870068-870071,870078,870083,870094,870104,870124,870127-"
-    "870128,870133,870135-870136,870141,870144,870148,870160,870172,870175,"
-    "870191,870198,870203-870204,870211,870219,870225,870233,870235-870236,"
-    "870254-870255,870259,870307,870311,870313,870320,870323,870330-870331,"
-    "870352-870353,870355,870359-870360,870371,870373,870378,870393-870395,"
-    "870402,870409-870410,870414,870416,870421,870436,870442,870447,870449,"
-    "870452,870454,870466,870476,870481-870483,870486,870500,870502,870505,"
-    "870513-870518,870522-870523,870527,870529,870534,870536-870538,870540-"
-    "870541,870543-870548,870554,870556,870561,870563,870584,870590-870592,"
-    "870594-870595,870597,870618,870620,870622,870625-870626,870641,870647,"
-    "870657,870665,870671,870681,870702-870703,870706-870708,870717-870718,"
-    "870727,870730,870737,870740,870742,870752,870758,870800,870809,870815,"
-    "870817,870820-870825,870830,870834-870836,870850-870851,870853,870859,"
-    "870861,870886,870894,870916-870918,870942,870945,870957,870962,870970,"
-    "870979,870981,870989,870996,871003,871005,871009,871011,871023,871033,"
-    "871035-871038,871041,871060,871078,871080,871092,871097,871099,871105,"
-    "871107,871120,871123-871127,871130,871133-871135,871140,871149,871155-"
-    "871156,871160,871162,871164,871181,871191,871199-871200,871205,871211-"
-    "871212,871215,871219,871225,871227,871229,871231,871236,871270,871273,"
-    "871277,871283,871297,871302,871306,871308,871315-871320,871323-871325,"
-    "871333-871335,871345,871347-871350,871354,871357,871361,871363-871366,"
-    "871374-871375,871377,871382,871385-871388,871391,871408,871411,871422,"
-    "871435,871441,871443-871444,871465,871470,871472-871476,871481,871489,"
-    "871499,871501-871502,871505,871508,871520,871523,871525-871527,871538,"
-    "871542,871544,871547-871549,871556,871559,871562-871563,871578,871581,"
-    "871587,871589-871597,871608,871613,871616-871617,871620,871624,871649,"
-    "871668,871675,871677,871693-871694,871696,871704,871732-871733,871744,"
-    "871747,871759,871762,871766,871769,871793,871796,871799,871801,871811,"
-    "871813,871821-871826,871831,871843,871860,871880,871891,871894,871899,"
-    "871907,871911,871926,871928,871933,871935,871941-871942,871947-871949,"
-    "871958,871974,872000-872001,872003,872005,872018,872022,872038,872065,"
-    "872068,872086,872091,872093,872097,872103,872112,872130,872154,872157,"
-    "872206,872216,872218-872219,872227,872234,872238,872243,872253,872255,"
-    "872259,872261,872278-872279,872281,872310-872311,872362,872404,872416-"
-    "872417,872429,872431,872434,872439,872450-872453,872468,872470,872477-"
-    "872478,872483,872490-872491,872495,872515-872516,872518-872519,872537,"
-    "872541,872544,872565,872568,872571-872573,872584,872596-872597,872612,"
-    "872619,872624,872632,872656,872670,872706,872710,872713,872717,872746-"
-    "872748,872777,872780-872782,872791,872804,872813,872845,872864,872870,"
-    "872872,872947-872948,872961,872974,872981,872985-872987,873004,873042,"
-    "873049,873051,873076,873087,873090,873096,873098,873100,873183,873186,"
-    "873192,873195,873210-873211,873247,873252,873256,873259,873275,873286,"
-    "873288,873343,873379-873381,873443,873521,873538-873539,873714-873715,"
-    "873718,873733,873745,873751,873767,873778,873781,873849,873856,873862,"
-    "873914,873940,873947-873948,873975-873976,873987,873998,874026-874027,"
-    "874075,874077-874078,874124-874125,874127,874156,874159,874161,874165,"
-    "874168,874170,874184,874189,874204,874223-874224,874245,874258,874262,"
-    "874270,874292-874297,874300-874301,874303,874305,874316-874318,874330,"
-    "874363,874380,874405,874421,874441,874459,874467,874473,874497,874506,"
-    "874545-874546,874561,874566,874568,874580,874619,874621,874634,874636,"
-    "874659,874673,874681,874727,874730,874743,874765-874767,874806,874816,"
-    "874848,874868,874888,874896,874909,874912,874996,875051,875069,875129,"
-    "875132,875134,875137,875151-875153,875186-875188,875190,875235-875237,"
-    "875242-875243,875249,875388,875393,875406,875411\n"]
+    ] + [ '    /' + line for line in big_prop_val.splitlines(True) ]
   svntest.verify.verify_outputs(
     "Redirected pg -vR doesn't match pg -vR stdout",
     pg_stdout_redir, None,