subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From prabh...@apache.org
Subject svn commit: r1457684 [20/22] - in /subversion/branches/verify-keep-going: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ notes/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subv...
Date Mon, 18 Mar 2013 09:35:29 GMT
Modified: subversion/branches/verify-keep-going/subversion/tests/cmdline/switch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/cmdline/switch_tests.py?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/cmdline/switch_tests.py (original)
+++ subversion/branches/verify-keep-going/subversion/tests/cmdline/switch_tests.py Mon Mar 18 09:35:24 2013
@@ -2933,6 +2933,42 @@ def switch_to_spaces(sbox):
                                         repo_url + '/A%20with more%20spaces',
                                         None, None, expected_status)
 
+def switch_across_replacement(sbox):
+  "switch across a node replacement"
+  sbox.build()
+  os.chdir(sbox.wc_dir)
+  sbox.wc_dir = ''
+
+  # replacement
+  sbox.simple_rm('A/mu')
+  sbox.simple_append('A/mu', "This is the file 'mu'.\n", truncate=True)
+  sbox.simple_add('A/mu')
+  sbox.simple_commit()  # r2
+
+  # When 'switch' of a dir brings in a replacement of a child file with no
+  # textual difference and ignoring ancestry, the switch doesn't report any
+  # incoming change at all, (and so won't raise a tree conflict if there is
+  # a local mod).  'update' on the other hand does report the replacement
+  # as expected.
+
+  # This test FAILs when using a Subversion 1.0-1.7 svnserve.
+
+  expected_output = svntest.wc.State(sbox.wc_dir, {
+    'A/mu' : Item(status='A ', prev_status='D '),
+    })
+  svntest.actions.run_and_verify_update(sbox.wc_dir,
+                                        expected_output, None, None,
+                                        None, None, None, None, None, False,
+                                        '-r1')
+  svntest.actions.run_and_verify_update(sbox.wc_dir,
+                                        expected_output, None, None,
+                                        None, None, None, None, None, False,
+                                        '-r2')
+  svntest.actions.run_and_verify_switch(sbox.wc_dir, sbox.ospath('A'), '^/A',
+                                        expected_output, None, None,
+                                        None, None, None, None, None, False,
+                                        '-r1')
+
 ########################################################################
 # Run the tests
 
@@ -2974,6 +3010,7 @@ test_list = [ None,
               up_to_old_rev_with_subtree_switched_to_root,
               different_node_kind,
               switch_to_spaces,
+              switch_across_replacement,
               ]
 
 if __name__ == '__main__':

Modified: subversion/branches/verify-keep-going/subversion/tests/cmdline/trans_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/cmdline/trans_tests.py?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/cmdline/trans_tests.py (original)
+++ subversion/branches/verify-keep-going/subversion/tests/cmdline/trans_tests.py Mon Mar 18 09:35:24 2013
@@ -25,7 +25,7 @@
 ######################################################################
 
 # General modules
-import os, re, logging
+import os, re, logging, sys
 
 logger = logging.getLogger()
 
@@ -883,6 +883,76 @@ def props_only_file_update(sbox):
     logger.warn('Temporary files leftover: %s', (', '.join(temps),))
     raise svntest.Failure
 
+@XFail()
+@Issues(4327)
+def autoprops_inconsistent_eol(sbox):
+  "able to handle inconsistent eols on add"
+
+  sbox.build(read_only = True)
+  wc_dir = sbox.wc_dir
+
+  text = 'line with NL\n' + \
+         'line with CR\r' + \
+         'line with CRLF\r\n' + \
+         'line with LFCR (or is that not a line? ;-)\n\r'
+
+  # Compensate for python smartness
+  if sys.platform == 'win32':
+    expected_text = text.replace('\r\n', '\n')
+  else:
+    expected_text = text
+
+  sbox.simple_add_text(text, 'add.c')
+  sbox.simple_add_text(text, 'add-force.c')
+
+  svntest.actions.run_and_verify_svn(None, None, '.*inconsistent newlines.*',
+                                     'ps', 'svn:eol-style', 'native',
+                                     sbox.ospath('add.c'))
+
+  svntest.actions.run_and_verify_svn(None, None, [],
+                                     'ps', 'svn:eol-style', 'native', '--force',
+                                     sbox.ospath('add.c'))
+
+  expected_disk = svntest.main.greek_state.copy()
+
+  expected_disk.add({
+    'add-force.c'  : Item(contents=expected_text),
+    'add.c'        : Item(contents=expected_text),
+  })
+
+  # Verify that both add and add-force haven't been changed
+  svntest.actions.verify_disk(wc_dir, expected_disk)
+
+  sbox.simple_propset('svn:auto-props', '*.c = svn:eol-style=native', '')
+
+
+  svntest.main.file_write(sbox.ospath('auto.c'), text, mode='wb')
+
+  expected_output = ['A         %s\n' % sbox.ospath('auto.c')]
+
+  # Fails with svn: E200009: File '.*auto.c' has inconsistent newlines
+  svntest.actions.run_and_verify_svn(None, expected_output,
+                                     [], 'add', sbox.ospath('auto.c'))
+
+@XFail()
+@Issues(4327)
+def autoprops_inconsistent_mime(sbox):
+  "able to handle inconsistent mime on add"
+
+  sbox.build(read_only = True)
+
+  sbox.simple_propset('svn:auto-props',
+                      '*.c = svn:eol-style=native\n'
+                      'c.* = svn:mime-type=application/octet-stream', '')
+
+  sbox.simple_append('c.iota.c', '')
+
+  expected_output = ['A         %s\n' % sbox.ospath('c.iota.c')]
+
+  # Fails with svn: E200009: File '.*c.iota.c' has binary mime type property
+  svntest.actions.run_and_verify_svn(None, expected_output,
+                                     [], 'add', sbox.ospath('c.iota.c'))
+
 
 ########################################################################
 # Run the tests
@@ -902,6 +972,8 @@ test_list = [ None,
               propset_commit_checkout_nocrash,
               propset_revert_noerror,
               props_only_file_update,
+              autoprops_inconsistent_eol,
+              autoprops_inconsistent_mime,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/verify-keep-going/subversion/tests/cmdline/tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/cmdline/tree_conflict_tests.py?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/cmdline/tree_conflict_tests.py (original)
+++ subversion/branches/verify-keep-going/subversion/tests/cmdline/tree_conflict_tests.py Mon Mar 18 09:35:24 2013
@@ -49,6 +49,10 @@ Issue = svntest.testcase.Issue_deco
 Wimp = svntest.testcase.Wimp_deco
 Item = svntest.wc.StateItem
 AnyOutput = svntest.verify.AnyOutput
+RegexOutput = svntest.verify.RegexOutput
+RegexListOutput = svntest.verify.RegexListOutput
+UnorderedOutput = svntest.verify.UnorderedOutput
+AlternateOutput = svntest.verify.AlternateOutput
 
 logger = logging.getLogger()
 
@@ -277,12 +281,15 @@ d_moves = [
 ]
 
 f_rpls = [
-  #( create_f, ['fD','fa','fA'] ),  # replacement - not yet
-  #( create_f, ['fM','fa','fC'] ),  # don't test all combinations, just because it's slow
+  # Don't test all possible combinations, just because it's slow
+  ( create_f, ['fD','fa','fA'] ),
+  ( create_f, ['fM','fC'] ),
 ]
 d_rpls = [
-  #( create_d, ['dD','dA'] ),  # replacement - not yet
-  #( create_d, ['dM','dC'] ),  # don't test all combinations, just because it's slow
+  # We're not testing directory replacements yet.
+  # Don't test all possible combinations, just because it's slow
+  #( create_d, ['dD','dA'] ),
+  #( create_d, ['dM','dC'] ),
   # Note that directory replacement differs from file replacement: the
   # schedule-delete dir is still on disk and is re-used for the re-addition.
 ]
@@ -373,7 +380,7 @@ def set_up_repos(wc_dir, br_dir, scenari
 # the target branch before applying the INCOMING_SCENARIOS.
 def ensure_tree_conflict(sbox, operation,
                          incoming_scenarios, localmod_scenarios,
-                         commit_local_mods):
+                         commit_local_mods=False):
   sbox.build()
   wc_dir = sbox.wc_dir
 
@@ -464,7 +471,7 @@ def ensure_tree_conflict(sbox, operation
       elif operation == 'merge':
         logger.debug("--- Merging")
         run_and_verify_svn(None, expected_stdout, [],
-                           'merge', '--ignore-ancestry',
+                           'merge',
                            '--allow-mixed-revisions',
                            '-r', str(source_left_rev) + ':' + str(source_right_rev),
                            source_url, target_path)
@@ -495,9 +502,17 @@ def ensure_tree_conflict(sbox, operation
       run_and_verify_commit(".", None, None, ".*conflict.*", victim_path)
 
       logger.debug("--- Checking that 'status' reports the conflict")
-      expected_stdout = svntest.verify.RegexOutput("^......C.* " +
-                                                   re.escape(victim_path) + "$",
-                                                   match_all=False)
+      expected_stdout = AlternateOutput([
+                          RegexListOutput([
+                          "^......C.* " + re.escape(victim_path) + "$",
+                          "^      >   .* upon " + operation] +
+                          svntest.main.summary_of_conflicts(tree_conflicts=1)),
+                          RegexListOutput([
+                          "^......C.* " + re.escape(victim_path) + "$",
+                          "^        > moved to .*",
+                          "^      >   .* upon " + operation] +
+                          svntest.main.summary_of_conflicts(tree_conflicts=1))
+                          ])
       run_and_verify_svn(None, expected_stdout, [],
                          'status', victim_path)
 
@@ -534,29 +549,6 @@ def ensure_tree_conflict(sbox, operation
 
 #----------------------------------------------------------------------
 
-# The main entry points for testing a set of scenarios.
-
-# Test 'update' and/or 'switch'
-# See test_wc_merge() for arguments.
-def test_tc_up_sw(sbox, incoming_scen, wc_scen):
-  sbox2 = sbox.clone_dependent()
-  ensure_tree_conflict(sbox, 'update', incoming_scen, wc_scen, False)
-  ensure_tree_conflict(sbox2, 'switch', incoming_scen, wc_scen, False)
-
-# Test 'merge'
-# INCOMING_SCEN is a list of scenarios describing the incoming changes to apply.
-# BR_SCEN  is a list of scenarios describing how the local branch has
-#   been modified relative to the merge-left source.
-# WC_SCEN is a list of scenarios describing the local WC mods.
-# One of BR_SCEN or WC_SCEN must be given but not both.
-def test_tc_merge(sbox, incoming_scen, br_scen=None, wc_scen=None):
-  if br_scen:
-    ensure_tree_conflict(sbox, 'merge', incoming_scen, br_scen, True)
-  else:
-    ensure_tree_conflict(sbox, 'merge', incoming_scen, wc_scen, False)
-
-#----------------------------------------------------------------------
-
 # Tests for update/switch affecting a file, where the incoming change
 # conflicts with a scheduled change in the WC.
 #
@@ -564,7 +556,11 @@ def test_tc_merge(sbox, incoming_scen, b
 
 def up_sw_file_mod_onto_del(sbox):
   "up/sw file: modify onto del/rpl"
-  test_tc_up_sw(sbox, f_mods, f_dels + f_rpls)
+  sbox2 = sbox.clone_dependent()
+  ensure_tree_conflict(sbox, 'update', f_mods,
+                                       f_dels + f_rpls)
+  ensure_tree_conflict(sbox2, 'switch', f_mods,
+                                        f_dels + f_rpls)
   # Note: See UC1 in notes/tree-conflicts/use-cases.txt.
 
 def up_sw_file_del_onto_mod(sbox):
@@ -574,17 +570,27 @@ def up_sw_file_del_onto_mod(sbox):
   #          ### OR (see Nico's email <>):
   #          schedule-delete but leave F on disk (can only apply with
   #            text-mod; prop-mod can't be preserved in this way)
-  test_tc_up_sw(sbox, f_dels + f_moves + f_rpls, f_mods)
+  sbox2 = sbox.clone_dependent()
+  ensure_tree_conflict(sbox, 'update', f_dels + f_moves + f_rpls,
+                                       f_mods)
+  ensure_tree_conflict(sbox2, 'switch', f_dels + f_moves + f_rpls,
+                                        f_mods)
   # Note: See UC2 in notes/tree-conflicts/use-cases.txt.
 
 def up_sw_file_del_onto_del(sbox):
   "up/sw file: del/rpl/mv onto del/rpl/mv"
-  test_tc_up_sw(sbox, f_dels + f_moves + f_rpls, f_dels + f_rpls)
+  sbox2 = sbox.clone_dependent()
+  ensure_tree_conflict(sbox, 'update', f_dels + f_moves + f_rpls,
+                                       f_dels + f_rpls)
+  ensure_tree_conflict(sbox2, 'switch', f_dels + f_moves + f_rpls,
+                                        f_dels + f_rpls)
   # Note: See UC3 in notes/tree-conflicts/use-cases.txt.
 
 def up_sw_file_add_onto_add(sbox):
   "up/sw file: add onto add"
-  test_tc_up_sw(sbox, f_adds, f_adds)
+  sbox2 = sbox.clone_dependent()
+  ensure_tree_conflict(sbox, 'update', f_adds, f_adds)
+  ensure_tree_conflict(sbox2, 'switch', f_adds, f_adds)
 
 #----------------------------------------------------------------------
 
@@ -594,17 +600,29 @@ def up_sw_file_add_onto_add(sbox):
 def up_sw_dir_mod_onto_del(sbox):
   "up/sw dir: modify onto del/rpl/mv"
   # WC state: any (D necessarily exists; children may have any state)
-  test_tc_up_sw(sbox, d_mods, d_dels + d_rpls)
+  sbox2 = sbox.clone_dependent()
+  ensure_tree_conflict(sbox, 'update', d_mods,
+                                       d_dels + d_rpls)
+  ensure_tree_conflict(sbox2, 'switch', d_mods,
+                                        d_dels + d_rpls)
 
 def up_sw_dir_del_onto_mod(sbox):
   "up/sw dir: del/rpl/mv onto modify"
   # WC state: any (D necessarily exists; children may have any state)
-  test_tc_up_sw(sbox, d_dels + d_moves + d_rpls, d_mods)
+  sbox2 = sbox.clone_dependent()
+  ensure_tree_conflict(sbox, 'update', d_dels + d_moves + d_rpls,
+                                       d_mods)
+  ensure_tree_conflict(sbox2, 'switch', d_dels + d_moves + d_rpls,
+                                        d_mods)
 
 def up_sw_dir_del_onto_del(sbox):
   "up/sw dir: del/rpl/mv onto del/rpl/mv"
   # WC state: any (D necessarily exists; children may have any state)
-  test_tc_up_sw(sbox, d_dels + d_moves + d_rpls, d_dels + d_rpls)
+  sbox2 = sbox.clone_dependent()
+  ensure_tree_conflict(sbox, 'update', d_dels + d_moves + d_rpls,
+                                       d_dels + d_rpls)
+  ensure_tree_conflict(sbox2, 'switch', d_dels + d_moves + d_rpls,
+                                        d_dels + d_rpls)
 
 # This is currently set as XFail over ra_dav because it hits
 # issue #3314 'DAV can overwrite directories during copy'
@@ -641,7 +659,9 @@ def up_sw_dir_del_onto_del(sbox):
 def up_sw_dir_add_onto_add(sbox):
   "up/sw dir: add onto add"
   # WC state: as scheduled (no obstruction)
-  test_tc_up_sw(sbox, d_adds, d_adds)
+  sbox2 = sbox.clone_dependent()
+  ensure_tree_conflict(sbox, 'update', d_adds, d_adds)
+  ensure_tree_conflict(sbox2, 'switch', d_adds, d_adds)
 
 #----------------------------------------------------------------------
 
@@ -651,31 +671,38 @@ def up_sw_dir_add_onto_add(sbox):
 def merge_file_mod_onto_not_file(sbox):
   "merge file: modify onto not-file"
   sbox2 = sbox.clone_dependent()
-  test_tc_merge(sbox, f_mods, br_scen = f_dels + f_moves + f_rpl_d)
-  test_tc_merge(sbox2, f_mods, wc_scen = f_dels + f_moves)
+  # Test merges where the "local mods" are committed to the target branch.
+  ensure_tree_conflict(sbox, 'merge', f_mods, f_dels + f_moves + f_rpl_d,
+                       commit_local_mods=True)
+  # Test merges where the "local mods" are uncommitted mods in the WC.
+  ensure_tree_conflict(sbox2, 'merge', f_mods, f_dels + f_moves)
   # Note: See UC4 in notes/tree-conflicts/use-cases.txt.
 
 def merge_file_del_onto_not_same(sbox):
   "merge file: del/rpl/mv onto not-same"
   sbox2 = sbox.clone_dependent()
-  test_tc_merge(sbox, f_dels + f_moves + f_rpls, br_scen = f_mods)
-  test_tc_merge(sbox2, f_dels + f_moves + f_rpls, wc_scen = f_mods)
+  ensure_tree_conflict(sbox, 'merge', f_dels + f_moves + f_rpls, f_mods,
+                       commit_local_mods=True)
+  ensure_tree_conflict(sbox2, 'merge', f_dels + f_moves + f_rpls, f_mods)
   # Note: See UC5 in notes/tree-conflicts/use-cases.txt.
 
 def merge_file_del_onto_not_file(sbox):
   "merge file: del/rpl/mv onto not-file"
   sbox2 = sbox.clone_dependent()
-  test_tc_merge(sbox, f_dels + f_moves + f_rpls,
-                br_scen = f_dels + f_moves + f_rpl_d)
-  test_tc_merge(sbox2, f_dels + f_moves + f_rpls,
-                wc_scen = f_dels + f_moves)
+  ensure_tree_conflict(sbox, 'merge', f_dels + f_moves + f_rpls,
+                                      f_dels + f_moves + f_rpl_d,
+                       commit_local_mods=True)
+  ensure_tree_conflict(sbox2, 'merge', f_dels + f_moves + f_rpls,
+                                       f_dels + f_moves)
   # Note: See UC6 in notes/tree-conflicts/use-cases.txt.
 
 def merge_file_add_onto_not_none(sbox):
   "merge file: add onto not-none"
   sbox2 = sbox.clone_dependent()
-  test_tc_merge(sbox, f_adds, br_scen = f_adds)  ### + d_adds (at path "F")
-  test_tc_merge(sbox2, f_adds, wc_scen = f_adds)  ### + d_adds (at path "F")
+  ensure_tree_conflict(sbox, 'merge', f_adds, f_adds,
+                       commit_local_mods=True)
+  ensure_tree_conflict(sbox2, 'merge', f_adds, f_adds)
+  # TODO: Also test directory adds at path "F"?
 
 #----------------------------------------------------------------------
 
@@ -685,28 +712,35 @@ def merge_file_add_onto_not_none(sbox):
 def merge_dir_mod_onto_not_dir(sbox):
   "merge dir: modify onto not-dir"
   sbox2 = sbox.clone_dependent()
-  test_tc_merge(sbox, d_mods, br_scen = d_dels + d_moves + d_rpl_f)
-  test_tc_merge(sbox2, d_mods, wc_scen = d_dels + d_moves)
+  ensure_tree_conflict(sbox, 'merge', d_mods, d_dels + d_moves + d_rpl_f,
+                       commit_local_mods=True)
+  ensure_tree_conflict(sbox2, 'merge', d_mods, d_dels + d_moves)
 
 # Test for issue #3150 'tree conflicts with directories as victims'.
 @Issue(3150)
 def merge_dir_del_onto_not_same(sbox):
   "merge dir: del/rpl/mv onto not-same"
   sbox2 = sbox.clone_dependent()
-  test_tc_merge(sbox, d_dels + d_moves + d_rpls, br_scen = d_mods)
-  test_tc_merge(sbox2, d_dels + d_moves + d_rpls, wc_scen = d_mods)
+  ensure_tree_conflict(sbox, 'merge', d_dels + d_moves + d_rpls, d_mods,
+                       commit_local_mods=True)
+  ensure_tree_conflict(sbox2, 'merge', d_dels + d_moves + d_rpls, d_mods)
 
 def merge_dir_del_onto_not_dir(sbox):
   "merge dir: del/rpl/mv onto not-dir"
   sbox2 = sbox.clone_dependent()
-  test_tc_merge(sbox, d_dels + d_moves + d_rpls, br_scen = d_dels + d_moves + d_rpl_f)
-  test_tc_merge(sbox2, d_dels + d_moves + d_rpls, wc_scen = d_dels + d_moves)
+  ensure_tree_conflict(sbox, 'merge', d_dels + d_moves + d_rpls,
+                                      d_dels + d_moves + d_rpl_f,
+                       commit_local_mods=True)
+  ensure_tree_conflict(sbox2, 'merge', d_dels + d_moves + d_rpls,
+                                       d_dels + d_moves)
 
 def merge_dir_add_onto_not_none(sbox):
   "merge dir: add onto not-none"
   sbox2 = sbox.clone_dependent()
-  test_tc_merge(sbox, d_adds, br_scen = d_adds)  ### + f_adds (at path "D")
-  test_tc_merge(sbox2, d_adds, wc_scen = d_adds)  ### + f_adds (at path "D")
+  ensure_tree_conflict(sbox, 'merge', d_adds, d_adds,
+                       commit_local_mods=True)
+  ensure_tree_conflict(sbox2, 'merge', d_adds, d_adds)
+  # TODO: also try with file adds at path "D"?
 
 #----------------------------------------------------------------------
 
@@ -1373,9 +1407,11 @@ def actual_only_node_behaviour(sbox):
                      "unlock", foo_path)
 
   # update (up)
+  # This doesn't skip because the update is anchored at the parent of A,
+  # the parent of A is not in conflict, and the update doesn't attempt to
+  # change foo itself.
   expected_stdout = [
-   "Skipped '%s' -- Node remains in conflict\n" % sbox.ospath('A/foo'),
-  ] + svntest.main.summary_of_conflicts(skipped_paths=1)
+   "Updating '" + foo_path + "':\n", "At revision 4.\n"]
   expected_stderr = []
   run_and_verify_svn(None, expected_stdout, expected_stderr,
                      "update", foo_path)

Modified: subversion/branches/verify-keep-going/subversion/tests/cmdline/update_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/cmdline/update_tests.py?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/cmdline/update_tests.py (original)
+++ subversion/branches/verify-keep-going/subversion/tests/cmdline/update_tests.py Mon Mar 18 09:35:24 2013
@@ -6118,17 +6118,16 @@ def break_moved_dir_edited_leaf_del(sbox
                                         None, None, None,
                                         None, None, 1)
 
-  # Now resolve the conflict, using --accept=theirs-conflict.
+  # Now resolve the conflict, using --accept=working
   # This should break the move of A/B/E to A/B/E2, leaving A/B/E2
   # as a copy. The deletion of A/B/E is not reverted.
   svntest.actions.run_and_verify_svn("resolve failed", None, [],
                                      'resolve', '--recursive',
-                                     '--accept=theirs-conflict', wc_dir)
+                                     '--accept=working', wc_dir)
   expected_status.tweak('A/B/E', treeconflict=None, moved_to=None)
   expected_status.tweak('A/B/E2', moved_from=None)
   svntest.actions.run_and_verify_status(wc_dir, expected_status)
 
-@XFail()
 @Issue(3144,3630)
 def break_moved_replaced_dir(sbox):
   "break local move of dir plus replace"
@@ -6182,13 +6181,14 @@ def break_moved_replaced_dir(sbox):
                                         None, None, None,
                                         None, None, 1)
 
-  # Now resolve the conflict, using --accept=theirs-conflict.
+  # Now resolve the conflict, using --accept=working
   # This should break the move of A/B/E to A/B/E2, leaving A/B/E2
   # as a copy. A/B/E is not reverted.
   svntest.actions.run_and_verify_svn("resolve failed", None, [],
                                      'resolve', '--recursive',
-                                     '--accept=theirs-conflict', wc_dir)
+                                     '--accept=working', wc_dir)
   expected_status.tweak('A/B/E2', moved_from=None)
+  expected_status.tweak('A/B/E', treeconflict=None, moved_to=None)
   svntest.actions.run_and_verify_status(wc_dir, expected_status)
 
 @Issue(4295)
@@ -6587,6 +6587,197 @@ def windows_update_backslash(sbox):
   svntest.actions.run_and_verify_svn(wc_dir, None, expected_error, 'up',
                                      wc_dir)
 
+def update_moved_away(sbox):
+  "update subtree of moved away"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  sbox.simple_add_text('new', 'new')
+  sbox.simple_commit()
+
+  sbox.simple_move('A', 'A_moved')
+
+  # Adding prev_status=' ' and prev_treeconflict='C' to A will make
+  # the test PASS but why are we getting two conflicts?
+  expected_output = svntest.wc.State(wc_dir, {
+      'A' : Item(status='  ', treeconflict='C'),
+  })
+
+  expected_disk = None
+  expected_status = svntest.wc.State(wc_dir, {
+    ''                  : Item(status='  ', wc_rev='1'),
+    'A'                 : Item(status='D ', wc_rev='1', moved_to='A_moved',
+                               treeconflict='C'),
+    'A/B'               : Item(status='D ', wc_rev='1'),
+    'A/B/E'             : Item(status='D ', wc_rev='2'),
+    'A/B/E/beta'        : Item(status='D ', wc_rev='2'),
+    'A/B/E/alpha'       : Item(status='D ', wc_rev='2'),
+    'A/B/F'             : Item(status='D ', wc_rev='1'),
+    'A/B/lambda'        : Item(status='D ', wc_rev='1'),
+    'A/D'               : Item(status='D ', wc_rev='1'),
+    'A/D/G'             : Item(status='D ', wc_rev='1'),
+    'A/D/G/pi'          : Item(status='D ', wc_rev='1'),
+    'A/D/G/tau'         : Item(status='D ', wc_rev='1'),
+    'A/D/G/rho'         : Item(status='D ', wc_rev='1'),
+    'A/D/H'             : Item(status='D ', wc_rev='1'),
+    'A/D/H/psi'         : Item(status='D ', wc_rev='1'),
+    'A/D/H/chi'         : Item(status='D ', wc_rev='1'),
+    'A/D/H/omega'       : Item(status='D ', wc_rev='1'),
+    'A/D/gamma'         : Item(status='D ', wc_rev='1'),
+    'A/C'               : Item(status='D ', wc_rev='1'),
+    'A/mu'              : Item(status='D ', wc_rev='1'),
+    'A_moved'           : Item(status='A ', copied='+', wc_rev='-',
+                               moved_from='A'),
+    'A_moved/D'         : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/G'       : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/G/rho'   : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/G/tau'   : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/G/pi'    : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/H'       : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/H/omega' : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/H/psi'   : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/H/chi'   : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/D/gamma'   : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/B'         : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/B/E'       : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/B/E/beta'  : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/B/E/alpha' : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/B/lambda'  : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/B/F'       : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/mu'        : Item(status='  ', copied='+', wc_rev='-'),
+    'A_moved/C'         : Item(status='  ', copied='+', wc_rev='-'),
+    'iota'              : Item(status='  ', wc_rev='1'),
+    'new'               : Item(status='  ', wc_rev='2'),
+  })
+
+  # This update raises a tree-conflict on A.  The conflict cannot be
+  # resolved to update the move destination because the move source is
+  # mixed rev.
+
+  # Note that this exact scenario doesn't apply to switch as we don't
+  # allow switches with as root a shadowed node.  However it is
+  # possible to get essentially the problem with switch by invoking a
+  # depth immedates switch on the parent of the root of the move
+  # source. That switches the root of the move without switching the
+  # children.
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        expected_disk,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, None,
+                                        sbox.ospath('A/B/E'))
+
+@Issues(4323)
+def bump_below_tree_conflict(sbox):
+  "tree conflicts should be skipped during update"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  svntest.actions.run_and_verify_svn(None, None, [],
+                                     'rm', sbox.repo_url + '/A/B',
+                                     '-m', '')
+
+  sbox.simple_add_text('Q', 'q')
+  sbox.simple_commit()
+  sbox.simple_add_text('R', 'r')
+  sbox.simple_commit()
+
+  sbox.simple_update(revision='1')
+
+  sbox.simple_rm('A')
+
+  expected_output = svntest.wc.State(wc_dir, {
+    'A'    : Item(status='  ', treeconflict='C'), # The real TC
+    'A/B'  : Item(status='  ', treeconflict='D'), # Shadowed delete
+  })
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 2)
+
+  expected_status.tweak('A', status='D ', treeconflict='C', wc_rev='2')
+  expected_status.tweak('A/D', 'A/D/G', 'A/D/G/rho', 'A/D/G/tau', 'A/D/G/pi',
+                        'A/D/H', 'A/D/H/omega', 'A/D/H/chi', 'A/D/H/psi',
+                        'A/D/gamma', 'A/mu', 'A/C', status='D ')
+
+  expected_status.remove('A/B', 'A/B/lambda', 'A/B/E', 'A/B/E/alpha',
+                         'A/B/E/beta', 'A/B/F')
+
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        None,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, None,
+                                        '-r', '2', wc_dir)
+
+  # A is tree conflicted, so an update of A/D should be a skip/no-op.
+  expected_output = svntest.wc.State(wc_dir, {
+    'A/D'               : Item(verb='Skipped'),
+  })
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        None,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, None,
+                                        sbox.ospath('A/D'))
+
+  # A is tree conflicted, so an update of A/D/G should be a skip/no-op.
+  expected_output = svntest.wc.State(wc_dir, {
+    'A/D/G'               : Item(verb='Skipped'),
+  })
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        None,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, None,
+                                        sbox.ospath('A/D/G'))
+
+@Issues(4111)
+def update_child_below_add(sbox):
+  "update child below added tree"
+
+  sbox.build(read_only = True)
+  wc_dir = sbox.wc_dir
+
+  sbox.simple_update('A/B', 0)
+
+  # Update skips A/B/E because A/B has a not-present BASE node.
+  expected_output = svntest.wc.State(wc_dir, {
+      'A/B/E' : Item(verb='Skipped'),
+  })
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+  expected_status.remove('A/B', 'A/B/E', 'A/B/E/alpha', 'A/B/E/beta',
+                         'A/B/F', 'A/B/lambda')
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        None,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, None,
+                                        sbox.ospath('A/B/E'))
+
+  # Add working nodes over A/B
+  sbox.simple_mkdir('A/B')
+  sbox.simple_mkdir('A/B/E')
+  sbox.simple_add_text('the new alpha', 'A/B/E/alpha')
+
+  expected_status.add({
+      'A/B'         : Item(status='A ', wc_rev='-'),
+      'A/B/E'       : Item(status='A ', wc_rev='-'),
+      'A/B/E/alpha' : Item(status='A ', wc_rev='-'),
+  })
+  # Update should still skip A/B/E
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        None,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, None,
+                                        sbox.ospath('A/B/E'))
+
 
 #######################################################################
 # Run the tests
@@ -6671,6 +6862,9 @@ test_list = [ None,
               update_swapped_depth_dirs,
               move_update_props,
               windows_update_backslash,
+              update_moved_away,
+              bump_below_tree_conflict,
+              update_child_below_add,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/verify-keep-going/subversion/tests/libsvn_delta/range-index-test.h
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/libsvn_delta/range-index-test.h?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/libsvn_delta/range-index-test.h (original)
+++ subversion/branches/verify-keep-going/subversion/tests/libsvn_delta/range-index-test.h Mon Mar 18 09:35:24 2013
@@ -1,5 +1,5 @@
 /*
- * range-index-test.c: An extension for random-test.
+ * range-index-test.h: An extension for random-test.
  *
  * ====================================================================
  *    Licensed to the Apache Software Foundation (ASF) under one
@@ -136,8 +136,9 @@ check_copy_count(int src_cp, int tgt_cp)
 static svn_error_t *
 random_range_index_test(apr_pool_t *pool)
 {
-  unsigned long seed, bytes_range;
-  int i, maxlen, iterations, dump_files, print_windows;
+  apr_uint32_t seed, maxlen;
+  apr_size_t bytes_range;
+  int i, iterations, dump_files, print_windows;
   const char *random_bytes;
   range_index_t *ndx;
   int tgt_cp = 0, src_cp = 0;
@@ -153,8 +154,8 @@ random_range_index_test(apr_pool_t *pool
   ndx = create_range_index(pool);
   for (i = 1; i <= iterations; ++i)
     {
-      apr_off_t offset = myrand(&seed) % 47;
-      apr_off_t limit = offset + myrand(&seed) % 16 + 1;
+      apr_off_t offset = svn_test_rand(&seed) % 47;
+      apr_off_t limit = offset + svn_test_rand(&seed) % 16 + 1;
       range_list_node_t *list, *r;
       apr_off_t ret;
       const char *msg2;
@@ -181,8 +182,7 @@ random_range_index_test(apr_pool_t *pool
           printf(" Ooops!\n");
           print_range_index(ndx->tree, msg2, ret);
           check_copy_count(src_cp, tgt_cp);
-          return svn_error_create(SVN_ERR_TEST_FAILED, 0, NULL, pool,
-                                  "insert_range");
+          return svn_error_create(SVN_ERR_TEST_FAILED, NULL, "insert_range");
         }
     }
 

Modified: subversion/branches/verify-keep-going/subversion/tests/libsvn_fs_fs/fs-pack-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/libsvn_fs_fs/fs-pack-test.c?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/libsvn_fs_fs/fs-pack-test.c (original)
+++ subversion/branches/verify-keep-going/subversion/tests/libsvn_fs_fs/fs-pack-test.c Mon Mar 18 09:35:24 2013
@@ -733,6 +733,61 @@ recover_fully_packed(const svn_test_opts
 #undef SHARD_SIZE
 
 /* ------------------------------------------------------------------------ */
+/* Regression test for issue #4320 (fsfs file-hinting fails when reading a rep
+   from the transaction that is commiting rev = SHARD_SIZE). */
+#define REPO_NAME "test-repo-file-hint-at-shard-boundary"
+#define SHARD_SIZE 4
+#define MAX_REV (SHARD_SIZE - 1)
+static svn_error_t *
+file_hint_at_shard_boundary(const svn_test_opts_t *opts,
+                            apr_pool_t *pool)
+{
+  apr_pool_t *subpool;
+  svn_fs_t *fs;
+  svn_fs_txn_t *txn;
+  svn_fs_root_t *txn_root;
+  const char *file_contents;
+  svn_stringbuf_t *retrieved_contents;
+  svn_error_t *err = SVN_NO_ERROR;
+
+  /* Bail (with success) on known-untestable scenarios */
+  if ((strcmp(opts->fs_type, "fsfs") != 0)
+      || (opts->server_minor_version && (opts->server_minor_version < 8)))
+    return SVN_NO_ERROR;
+
+  /* Create a packed FS and MAX_REV revisions */
+  SVN_ERR(create_packed_filesystem(REPO_NAME, opts, MAX_REV, SHARD_SIZE, pool));
+
+  /* Reopen the filesystem */
+  subpool = svn_pool_create(pool);
+  SVN_ERR(svn_fs_open(&fs, REPO_NAME, NULL, subpool));
+
+  /* Revision = SHARD_SIZE */ 
+  file_contents = get_rev_contents(SHARD_SIZE, subpool);
+  SVN_ERR(svn_fs_begin_txn(&txn, fs, MAX_REV, subpool));
+  SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool));
+  SVN_ERR(svn_test__set_file_contents(txn_root, "iota", file_contents,
+                                      subpool));
+
+  /* Retrieve the file. */
+  SVN_ERR(svn_test__get_file_contents(txn_root, "iota", &retrieved_contents,
+                                      subpool));
+  if (strcmp(retrieved_contents->data, file_contents))
+    {
+      err = svn_error_create(SVN_ERR_TEST_FAILED, err,
+                              "Retrieved incorrect contents from iota.");
+    }
+
+  /* Close the repo. */
+  svn_pool_destroy(subpool);
+
+  return err; 
+}
+#undef REPO_NAME
+#undef MAX_REV
+#undef SHARD_SIZE
+
+/* ------------------------------------------------------------------------ */
 
 /* The test table.  */
 
@@ -755,5 +810,7 @@ struct svn_test_descriptor_t test_funcs[
                        "get/set huge packed revprops in FSFS"),
     SVN_TEST_OPTS_PASS(recover_fully_packed,
                        "recover a fully packed filesystem"),
+    SVN_TEST_OPTS_PASS(file_hint_at_shard_boundary,
+                       "test file hint at shard boundary"),
     SVN_TEST_NULL
   };

Modified: subversion/branches/verify-keep-going/subversion/tests/libsvn_repos/repos-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/libsvn_repos/repos-test.c?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/libsvn_repos/repos-test.c (original)
+++ subversion/branches/verify-keep-going/subversion/tests/libsvn_repos/repos-test.c Mon Mar 18 09:35:24 2013
@@ -2630,7 +2630,7 @@ reporter_depth_exclude(const svn_test_op
 
   SVN_ERR(svn_repos_begin_report3(&report_baton, 2, repos, "/", "", NULL,
                                   TRUE, svn_depth_infinity, FALSE, FALSE,
-                                  editor, edit_baton, NULL, NULL, 16,
+                                  editor, edit_baton, NULL, NULL, 0,
                                   subpool));
   SVN_ERR(svn_repos_set_path3(report_baton, "", 1,
                               svn_depth_infinity,
@@ -2688,7 +2688,7 @@ reporter_depth_exclude(const svn_test_op
 
   SVN_ERR(svn_repos_begin_report3(&report_baton, 2, repos, "/", "", NULL,
                                   TRUE, svn_depth_infinity, FALSE, FALSE,
-                                  editor, edit_baton, NULL, NULL, 20,
+                                  editor, edit_baton, NULL, NULL, 0,
                                   subpool));
   SVN_ERR(svn_repos_set_path3(report_baton, "", 1,
                               svn_depth_infinity,
@@ -3042,6 +3042,7 @@ test_get_file_revs(const svn_test_opts_t
   };
   apr_hash_t *ht_trunk_results = apr_hash_make(subpool);
   apr_hash_t *ht_branch_results = apr_hash_make(subpool);
+  apr_hash_t *ht_reverse_results = apr_hash_make(subpool);
 
   for (i = 0; i < sizeof(trunk_results) / sizeof(trunk_results[0]); i++)
     apr_hash_set(ht_trunk_results, &trunk_results[i].rev,
@@ -3051,6 +3052,11 @@ test_get_file_revs(const svn_test_opts_t
     apr_hash_set(ht_branch_results, &branch_results[i].rev,
                  sizeof(svn_revnum_t), &branch_results[i]);
 
+  for (i = 0; i < sizeof(trunk_results) / sizeof(trunk_results[0]); i++)
+    if (!trunk_results[i].result_of_merge)
+      apr_hash_set(ht_reverse_results, &trunk_results[i].rev,
+                   sizeof(svn_revnum_t), &trunk_results[i]);
+
   /* Create the repository and verify blame results. */
   SVN_ERR(svn_test__create_blame_repository(&repos, "test-repo-get-filerevs",
                                             opts, subpool));
@@ -3060,7 +3066,7 @@ test_get_file_revs(const svn_test_opts_t
 
   /* Verify blame of /trunk/A/mu */
   SVN_ERR(svn_repos_get_file_revs2(repos, "/trunk/A/mu", 0, youngest_rev,
-                                   1, NULL, NULL,
+                                   TRUE, NULL, NULL,
                                    file_rev_handler,
                                    ht_trunk_results,
                                    subpool));
@@ -3069,7 +3075,7 @@ test_get_file_revs(const svn_test_opts_t
   /* Verify blame of /branches/1.0.x/A/mu */
   SVN_ERR(svn_repos_get_file_revs2(repos, "/branches/1.0.x/A/mu", 0,
                                    youngest_rev,
-                                   1, NULL, NULL,
+                                   TRUE, NULL, NULL,
                                    file_rev_handler,
                                    ht_branch_results,
                                    subpool));
@@ -3077,6 +3083,13 @@ test_get_file_revs(const svn_test_opts_t
 
   /* ### TODO: Verify blame of /branches/1.0.x/A/mu in range 6-7 */
 
+  SVN_ERR(svn_repos_get_file_revs2(repos, "/trunk/A/mu", youngest_rev, 0,
+                                   FALSE, NULL, NULL,
+                                   file_rev_handler,
+                                   ht_reverse_results,
+                                   subpool));
+  SVN_TEST_ASSERT(apr_hash_count(ht_reverse_results) == 0);
+
   svn_pool_destroy(subpool);
 
   return SVN_NO_ERROR;

Modified: subversion/branches/verify-keep-going/subversion/tests/libsvn_subr/checksum-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/libsvn_subr/checksum-test.c?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/libsvn_subr/checksum-test.c (original)
+++ subversion/branches/verify-keep-going/subversion/tests/libsvn_subr/checksum-test.c Mon Mar 18 09:35:24 2013
@@ -113,6 +113,48 @@ test_pseudo_md5(apr_pool_t *pool)
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+zero_match(apr_pool_t *pool)
+{
+  svn_checksum_t *zero_md5;
+  svn_checksum_t *zero_sha1;
+  svn_checksum_t *A_md5;
+  svn_checksum_t *B_md5;
+  svn_checksum_t *A_sha1;
+  svn_checksum_t *B_sha1;
+  
+  
+  zero_md5 = svn_checksum_create(svn_checksum_md5, pool);
+  SVN_ERR(svn_checksum_clear(zero_md5));
+  SVN_ERR(svn_checksum(&A_md5, svn_checksum_md5, "A", 1, pool));
+  SVN_ERR(svn_checksum(&B_md5, svn_checksum_md5, "B", 1, pool));
+
+  zero_sha1 = svn_checksum_create(svn_checksum_sha1, pool);
+  SVN_ERR(svn_checksum_clear(zero_sha1));
+  SVN_ERR(svn_checksum(&A_sha1, svn_checksum_sha1, "A", 1, pool));
+  SVN_ERR(svn_checksum(&B_sha1, svn_checksum_sha1, "B", 1, pool));
+
+  /* Different non-zero don't match. */
+  SVN_TEST_ASSERT(!svn_checksum_match(A_md5, B_md5));
+  SVN_TEST_ASSERT(!svn_checksum_match(A_sha1, B_sha1));
+  SVN_TEST_ASSERT(!svn_checksum_match(A_md5, A_sha1));
+  SVN_TEST_ASSERT(!svn_checksum_match(A_md5, B_sha1));
+
+  /* Zero matches anything of the same kind. */
+  SVN_TEST_ASSERT(svn_checksum_match(A_md5, zero_md5));
+  SVN_TEST_ASSERT(svn_checksum_match(zero_md5, B_md5));
+  SVN_TEST_ASSERT(svn_checksum_match(A_sha1, zero_sha1));
+  SVN_TEST_ASSERT(svn_checksum_match(zero_sha1, B_sha1));
+
+  /* Zero doesn't match anything of a different kind... */
+  SVN_TEST_ASSERT(!svn_checksum_match(zero_md5, A_sha1));
+  SVN_TEST_ASSERT(!svn_checksum_match(zero_sha1, A_md5));
+  /* ...even another zero. */
+  SVN_TEST_ASSERT(!svn_checksum_match(zero_md5, zero_sha1));
+
+  return SVN_NO_ERROR;
+}
+
 /* An array of all test functions */
 struct svn_test_descriptor_t test_funcs[] =
   {
@@ -123,5 +165,7 @@ struct svn_test_descriptor_t test_funcs[
                    "checksum emptiness"),
     SVN_TEST_PASS2(test_pseudo_md5,
                    "pseudo-md5 compatibility"),
+    SVN_TEST_PASS2(zero_match,
+                   "zero checksum matching"),
     SVN_TEST_NULL
   };

Modified: subversion/branches/verify-keep-going/subversion/tests/libsvn_subr/dirent_uri-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/libsvn_subr/dirent_uri-test.c?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/libsvn_subr/dirent_uri-test.c (original)
+++ subversion/branches/verify-keep-going/subversion/tests/libsvn_subr/dirent_uri-test.c Mon Mar 18 09:35:24 2013
@@ -892,6 +892,14 @@ static const testcase_canonicalize_t uri
     { "file:///C%7C/temp/REPOS", "file:///C%7C/temp/REPOS" },
     { "file:///C|/temp/REPOS", "file:///C%7C/temp/REPOS" },
     { "file:///C:/",           "file:///C:" },
+    { "http://[::1]/",         "http://[::1]" },
+    { "http://[::1]:80/",      "http://[::1]" },
+    { "https://[::1]:443",     "https://[::1]" },
+    { "http://[::1]/",         "http://[::1]" },
+    { "http://[::1]:80/",      "http://[::1]" },
+    { "https://[::1]:443",     "https://[::1]" },
+    { "http://[FACE:B00C::]/s","http://[face:b00c::]/s" },
+    { "svn+ssh://b@[1:2::3]/s","svn+ssh://b@[1:2::3]/s" },
 #ifdef SVN_USE_DOS_PATHS
     { "file:///c:/temp/repos", "file:///C:/temp/repos" },
     { "file:///c:/temp/REPOS", "file:///C:/temp/REPOS" },

Modified: subversion/branches/verify-keep-going/subversion/tests/libsvn_wc/db-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/libsvn_wc/db-test.c?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/branches/verify-keep-going/subversion/tests/libsvn_wc/db-test.c Mon Mar 18 09:35:24 2013
@@ -180,7 +180,7 @@ static const char * const TESTING_DATA =
       the value 1 is just 'good enough' to make the nodes WORKING nodes. */
   "insert into nodes values ("
   "  1, 'I', 1, '', 2, 'some/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
   "  null, null, null, null, null);"
 
    /* I'm not sure what the working J is supposed to represent.  It
@@ -189,39 +189,39 @@ static const char * const TESTING_DATA =
       implies they are children of a copied J. */
   "insert into nodes values ("
   "  1, 'J', 1, '', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-a', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b', 2, 'J', 2, 'some/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b/J-b-a', 3, 'J/J-b', 2, 'another/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b/J-b-b', 2, 'J/J-b', null, null, 2, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c/J-c-a', 1, 'J/J-c', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c', 2, 'J', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c/J-c-a', 2, 'J/J-c', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-d', 2, 'J', 2, 'moved/file', 2, 'normal',"
@@ -229,79 +229,79 @@ static const char * const TESTING_DATA =
   "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'moved/file', 0, 'moved', 2, 'moved/file', 2, 'normal',"
-  "  0, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, 'file', '()', null, '$sha1$" SHA1_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
   "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'moved/file', 2, 'moved', 2, 'moved/file', 2, 'base-deleted',"
-  "  0, 'J/J-d', 'file', '()', null, null, null, null, null, null,"
+  "  null, 'J/J-d', 'file', '()', null, null, null, null, null, null,"
   "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-a', 1, 'J/J-e', null, null, null, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 1, 'J/J-e', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e', 2, 'J', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-a', 2, 'J/J-e', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 2, 'J/J-e', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b/Jeba', 1, 'J/J-e/J-e-b', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f/J-f-a', 1, 'J/J-f', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K', 1, '', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-a', 1, 'K', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-b', 1, 'K', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L', 1, '', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a', 1, 'L', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a/L-a-a', 1, 'L/L-a', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a', 2, 'L', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a/L-a-a', 2, 'L/L-a', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'other/place', 2, 'other', null, null, null, 'normal',"
@@ -309,7 +309,7 @@ static const char * const TESTING_DATA =
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'other/place/J-e-a', 2, 'other/place', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'other/place/J-e-b', 2, 'other/place', null, null, null, 'normal',"
@@ -378,7 +378,7 @@ static svn_error_t *
 test_getting_info(apr_pool_t *pool)
 {
   const char *local_abspath;
-  svn_kind_t kind;
+  svn_node_kind_t kind;
   svn_wc__db_status_t status;
   svn_revnum_t revision;
   const char *repos_relpath;
@@ -408,7 +408,7 @@ test_getting_info(apr_pool_t *pool)
             &update_root,
             db, local_abspath,
             pool, pool));
-  SVN_TEST_ASSERT(kind == svn_kind_dir);
+  SVN_TEST_ASSERT(kind == svn_node_dir);
   SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
   SVN_TEST_ASSERT(revision == 1);
   SVN_TEST_STRING_ASSERT(repos_relpath, "");
@@ -434,7 +434,7 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "A", pool),
             pool, pool));
-  SVN_TEST_ASSERT(kind == svn_kind_file);
+  SVN_TEST_ASSERT(kind == svn_node_file);
   SVN_TEST_STRING_ASSERT(SHA1_1, svn_checksum_to_cstring(checksum, pool));
   SVN_TEST_STRING_ASSERT(repos_relpath, "A");
   SVN_TEST_STRING_ASSERT(repos_root_url, ROOT_ONE);
@@ -449,7 +449,7 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "B", pool),
             pool, pool));
-  SVN_TEST_ASSERT(kind == svn_kind_symlink);
+  SVN_TEST_ASSERT(kind == svn_node_symlink);
   SVN_TEST_ASSERT(status == svn_wc__db_status_excluded);
   SVN_TEST_ASSERT(!SVN_IS_VALID_REVNUM(revision));
   SVN_TEST_STRING_ASSERT(repos_relpath, "B");
@@ -472,7 +472,7 @@ test_getting_info(apr_pool_t *pool)
             NULL, NULL, NULL, NULL,
             db, svn_dirent_join(local_abspath, "C", pool),
             pool, pool));
-  SVN_TEST_ASSERT(kind == svn_kind_unknown);
+  SVN_TEST_ASSERT(kind == svn_node_unknown);
   SVN_TEST_ASSERT(status == svn_wc__db_status_server_excluded);
 
   /* Test: not-present presence. */
@@ -556,12 +556,12 @@ static svn_error_t *
 validate_node(svn_wc__db_t *db,
               const char *local_abspath,
               const char *relpath,
-              svn_kind_t expected_kind,
+              svn_node_kind_t expected_kind,
               svn_wc__db_status_t expected_status,
               apr_pool_t *scratch_pool)
 {
   const char *path = svn_dirent_join(local_abspath, relpath, scratch_pool);
-  svn_kind_t kind;
+  svn_node_kind_t kind;
   svn_wc__db_status_t status;
   apr_hash_t *props;
   const svn_string_t *value;
@@ -691,7 +691,7 @@ test_inserting_nodes(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "N/N-b", pool),
             "N/N-b", ROOT_ONE, UUID_ONE, 3,
-            svn_kind_file, svn_wc__db_status_server_excluded,
+            svn_node_file, svn_wc__db_status_server_excluded,
             NULL, NULL,
             pool));
 
@@ -699,7 +699,7 @@ test_inserting_nodes(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "P", pool),
             "P", ROOT_ONE, UUID_ONE, 3,
-            svn_kind_dir, svn_wc__db_status_excluded,
+            svn_node_dir, svn_wc__db_status_excluded,
             NULL, NULL,
             pool));
 
@@ -707,7 +707,7 @@ test_inserting_nodes(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_not_present_node(
             db, svn_dirent_join(local_abspath, "Q", pool),
             "Q", ROOT_ONE, UUID_ONE, 3,
-            svn_kind_symlink,
+            svn_node_symlink,
             NULL, NULL,
             pool));
 
@@ -715,36 +715,36 @@ test_inserting_nodes(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "R", pool),
             "R", ROOT_ONE, UUID_ONE, 3,
-            svn_kind_unknown, svn_wc__db_status_server_excluded,
+            svn_node_unknown, svn_wc__db_status_server_excluded,
             NULL, NULL,
             pool));
 
 
   /* Are all the nodes where we expect them to be? */
   SVN_ERR(validate_node(db, local_abspath, "N",
-                        svn_kind_dir, svn_wc__db_status_normal,
+                        svn_node_dir, svn_wc__db_status_normal,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "N/N-a",
-                        svn_kind_file, svn_wc__db_status_normal,
+                        svn_node_file, svn_wc__db_status_normal,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "N/N-b",
-                        svn_kind_file,
+                        svn_node_file,
                         svn_wc__db_status_server_excluded,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "N/N-c",
-                        svn_kind_unknown, svn_wc__db_status_incomplete,
+                        svn_node_unknown, svn_wc__db_status_incomplete,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "O",
-                        svn_kind_symlink, svn_wc__db_status_normal,
+                        svn_node_symlink, svn_wc__db_status_normal,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "P",
-                        svn_kind_dir, svn_wc__db_status_excluded,
+                        svn_node_dir, svn_wc__db_status_excluded,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "Q",
-                        svn_kind_symlink, svn_wc__db_status_not_present,
+                        svn_node_symlink, svn_wc__db_status_not_present,
                         pool));
   SVN_ERR(validate_node(db, local_abspath, "R",
-                        svn_kind_unknown,
+                        svn_node_unknown,
                         svn_wc__db_status_server_excluded,
                         pool));
 
@@ -800,7 +800,7 @@ static svn_error_t *
 test_working_info(apr_pool_t *pool)
 {
   const char *local_abspath;
-  svn_kind_t kind;
+  svn_node_kind_t kind;
   svn_wc__db_status_t status;
   svn_revnum_t revision;
   const char *repos_relpath;
@@ -844,7 +844,7 @@ test_working_info(apr_pool_t *pool)
             db, svn_dirent_join(local_abspath, "I", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_added);
-  SVN_TEST_ASSERT(kind == svn_kind_dir);
+  SVN_TEST_ASSERT(kind == svn_node_dir);
   SVN_TEST_ASSERT(revision == SVN_INVALID_REVNUM);
   SVN_TEST_ASSERT(repos_relpath == NULL);
   SVN_TEST_ASSERT(repos_root_url == NULL);
@@ -895,14 +895,14 @@ test_pdh(apr_pool_t *pool)
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "sub", pool),
             "sub", ROOT_ONE, UUID_ONE, 1,
-            svn_kind_file, svn_wc__db_status_server_excluded,
+            svn_node_file, svn_wc__db_status_server_excluded,
             NULL, NULL,
             pool));
 
   SVN_ERR(svn_wc__db_base_add_excluded_node(
             db, svn_dirent_join(local_abspath, "sub/A", pool),
             "sub/A", ROOT_ONE, UUID_ONE, 1,
-            svn_kind_file, svn_wc__db_status_server_excluded,
+            svn_node_file, svn_wc__db_status_server_excluded,
             NULL, NULL,
             pool));
 
@@ -925,6 +925,8 @@ test_scan_addition(apr_pool_t *pool)
   const char *original_uuid;
   svn_revnum_t original_revision;
   const char *moved_from_abspath;
+  const char *move_op_root_abspath;
+  const char *move_op_root_src;
   const char *delete_op_root_abspath;
 
   SVN_ERR(create_open(&db, &local_abspath, "test_scan_addition", pool));
@@ -934,7 +936,7 @@ test_scan_addition(apr_pool_t *pool)
             &status, &op_root_abspath,
             &repos_relpath, &repos_root_url, &repos_uuid,
             &original_repos_relpath, &original_root_url, &original_uuid,
-            &original_revision, NULL, NULL,
+            &original_revision,
             db, svn_dirent_join(local_abspath, "J", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_added);
@@ -952,7 +954,7 @@ test_scan_addition(apr_pool_t *pool)
             &status, &op_root_abspath,
             &repos_relpath, &repos_root_url, &repos_uuid,
             &original_repos_relpath, &original_root_url, &original_uuid,
-            &original_revision, NULL, NULL,
+            &original_revision,
             db, svn_dirent_join(local_abspath, "J/J-a", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_added);
@@ -970,7 +972,14 @@ test_scan_addition(apr_pool_t *pool)
             &status, &op_root_abspath,
             &repos_relpath, &repos_root_url, &repos_uuid,
             &original_repos_relpath, &original_root_url, &original_uuid,
-            &original_revision, &moved_from_abspath, &delete_op_root_abspath,
+            &original_revision,
+            db, svn_dirent_join(local_abspath, "J/J-d", pool),
+            pool, pool));
+  SVN_ERR(svn_wc__db_scan_moved(
+            &moved_from_abspath,
+            &move_op_root_abspath,
+            &move_op_root_src,
+            &delete_op_root_abspath,
             db, svn_dirent_join(local_abspath, "J/J-d", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_moved_here);
@@ -978,6 +987,10 @@ test_scan_addition(apr_pool_t *pool)
                                    op_root_abspath, pool));
   SVN_TEST_ASSERT(validate_abspath(local_abspath, "moved/file",
                                    moved_from_abspath, pool));
+  SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-d",
+                                   move_op_root_abspath, pool));
+  SVN_TEST_ASSERT(validate_abspath(local_abspath, "moved/file",
+                                   move_op_root_src, pool));
   SVN_TEST_ASSERT(validate_abspath(local_abspath, "moved/file",
                                    delete_op_root_abspath, pool));
   SVN_TEST_STRING_ASSERT(repos_relpath, "J/J-d");
@@ -993,7 +1006,7 @@ test_scan_addition(apr_pool_t *pool)
             &status, &op_root_abspath,
             &repos_relpath, &repos_root_url, &repos_uuid,
             &original_repos_relpath, &original_root_url, &original_uuid,
-            &original_revision, NULL, NULL,
+            &original_revision,
             db, svn_dirent_join(local_abspath, "J/J-b", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_copied);
@@ -1012,7 +1025,7 @@ test_scan_addition(apr_pool_t *pool)
             &status, &op_root_abspath,
             &repos_relpath, &repos_root_url, &repos_uuid,
             &original_repos_relpath, &original_root_url, &original_uuid,
-            &original_revision, NULL, NULL,
+            &original_revision,
             db, svn_dirent_join(local_abspath, "J/J-b/J-b-a", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_copied);
@@ -1031,7 +1044,7 @@ test_scan_addition(apr_pool_t *pool)
             &status, &op_root_abspath,
             &repos_relpath, &repos_root_url, &repos_uuid,
             &original_repos_relpath, &original_root_url, &original_uuid,
-            &original_revision, NULL, NULL,
+            &original_revision,
             db, svn_dirent_join(local_abspath, "J/J-b/J-b-b", pool),
             pool, pool));
   SVN_TEST_ASSERT(status == svn_wc__db_status_copied);
@@ -1446,7 +1459,7 @@ test_externals_store(apr_pool_t *pool)
 
   {
     svn_wc__db_status_t status;
-    svn_kind_t kind;
+    svn_node_kind_t kind;
     const char *repos_root_url;
     const char *repos_uuid;
     const char *defining_abspath;
@@ -1463,7 +1476,7 @@ test_externals_store(apr_pool_t *pool)
                                      pool, pool));
 
     SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
-    SVN_TEST_ASSERT(kind == svn_kind_file);
+    SVN_TEST_ASSERT(kind == svn_node_file);
     SVN_TEST_STRING_ASSERT(repos_root_url, "svn://some-repos/svn");
     SVN_TEST_STRING_ASSERT(repos_uuid, "not-a-uuid");
     SVN_TEST_STRING_ASSERT(defining_abspath, subdir);
@@ -1494,7 +1507,7 @@ test_externals_store(apr_pool_t *pool)
                                      pool, pool));
 
     SVN_TEST_ASSERT(status == svn_wc__db_status_normal);
-    SVN_TEST_ASSERT(kind == svn_kind_dir);
+    SVN_TEST_ASSERT(kind == svn_node_dir);
     SVN_TEST_STRING_ASSERT(repos_root_url, "svn://other-repos/nsv");
     SVN_TEST_STRING_ASSERT(repos_uuid, "no-uuid-either");
     SVN_TEST_STRING_ASSERT(defining_abspath, subdir);

Modified: subversion/branches/verify-keep-going/subversion/tests/libsvn_wc/entries-compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/verify-keep-going/subversion/tests/libsvn_wc/entries-compat.c?rev=1457684&r1=1457683&r2=1457684&view=diff
==============================================================================
--- subversion/branches/verify-keep-going/subversion/tests/libsvn_wc/entries-compat.c (original)
+++ subversion/branches/verify-keep-going/subversion/tests/libsvn_wc/entries-compat.c Mon Mar 18 09:35:24 2013
@@ -179,35 +179,35 @@ static const char * const TESTING_DATA =
       the value 1 is just 'good enough' to make the nodes WORKING nodes. */
   "insert into nodes values ("
   "  1, 'I', 1, '', 2, 'some/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J', 1, '', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-a', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b', 1, 'J', 2, 'some/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b/J-b-a', 1, 'J/J-b', 2, 'another/dir', 2, 'normal',"
-  "  0, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
+  "  null, null, 'dir', '()', 'infinity', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-b/J-b-b', 1, 'J/J-b', null, null, null, 'normal',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c', 1, 'J', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-c/J-c-a', 1, 'J/J-c', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-d', 1, 'J', 2, 'moved/file', 2, 'normal',"
@@ -215,51 +215,51 @@ static const char * const TESTING_DATA =
   "  10, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e', 1, 'J', null, null, null, 'not-present',"
-  "  0, 'other/place', 'dir', '()', null, null, null, null, null, null,"
+  "  null, 'other/place', 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-a', 1, 'J/J-e', null, null, null, 'not-present',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b', 1, 'J/J-e', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-e/J-e-b/Jeba', 1, 'J/J-e/J-e-b', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f', 1, 'J', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'J/J-f/J-f-a', 1, 'J/J-f', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K', 1, '', null, null, null, 'base-deleted',"
-  "  0, null, 'dir', '()', null, null, null, null, null, null,"
+  "  null, null, 'dir', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-a', 1, 'K', null, null, null, 'base-deleted',"
-  "  0, null, 'file', '()', null, null, null, null, null, null,"
+  "  null, null, 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'K/K-b', 1, 'K', null, null, null, 'base-deleted',"
-  "  0, 'moved/away', 'file', '()', null, null, null, null, null, null,"
+  "  null, 'moved/away', 'file', '()', null, null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L', 1, '', null, null, null, 'normal',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a', 1, 'L', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
   "insert into nodes values ("
   "  1, 'L/L-a/L-a-a', 1, 'L/L-a', null, null, null, 'not-present',"
-  "  0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+  "  null, null, 'dir', '()', 'immediates', null, null, null, null, null,"
   "  null, null, null, null, null);"
    "insert into actual_node values ("
    "  1, 'I', '', null, null, null, null, null, 'changelist', null, "



Mime
View raw message