You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2010/12/12 17:43:45 UTC
svn commit: r1044847 [4/4] - in
/subversion/branches/diff-optimizations-bytes: ./ build/ build/ac-macros/
build/generator/templates/ notes/ notes/api-errata/ notes/api-errata/1.7/
subversion/include/ subversion/include/private/ subversion/libsvn_client...
Modified: subversion/branches/diff-optimizations-bytes/subversion/svnsync/main.c
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/svnsync/main.c?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/svnsync/main.c (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/svnsync/main.c Sun Dec 12 16:43:42 2010
@@ -1829,7 +1829,7 @@ main(int argc, const char *argv[])
if (argc <= 1)
{
- help_cmd(NULL, NULL, pool);
+ SVN_INT_ERR(help_cmd(NULL, NULL, pool));
svn_pool_destroy(pool);
return EXIT_FAILURE;
}
@@ -1850,7 +1850,7 @@ main(int argc, const char *argv[])
break;
else if (apr_err)
{
- help_cmd(NULL, NULL, pool);
+ SVN_INT_ERR(help_cmd(NULL, NULL, pool));
svn_pool_destroy(pool);
return EXIT_FAILURE;
}
@@ -1970,7 +1970,7 @@ main(int argc, const char *argv[])
default:
{
- help_cmd(NULL, NULL, pool);
+ SVN_INT_ERR(help_cmd(NULL, NULL, pool));
svn_pool_destroy(pool);
return EXIT_FAILURE;
}
@@ -2041,7 +2041,7 @@ main(int argc, const char *argv[])
}
else
{
- help_cmd(NULL, NULL, pool);
+ SVN_INT_ERR(help_cmd(NULL, NULL, pool));
svn_pool_destroy(pool);
return EXIT_FAILURE;
}
@@ -2053,7 +2053,7 @@ main(int argc, const char *argv[])
first_arg);
if (subcommand == NULL)
{
- help_cmd(NULL, NULL, pool);
+ SVN_INT_ERR(help_cmd(NULL, NULL, pool));
svn_pool_destroy(pool);
return EXIT_FAILURE;
}
@@ -2076,7 +2076,7 @@ main(int argc, const char *argv[])
svn_opt_format_option(&optstr, badopt, FALSE, pool);
if (subcommand->name[0] == '-')
{
- help_cmd(NULL, NULL, pool);
+ SVN_INT_ERR(help_cmd(NULL, NULL, pool));
}
else
{
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/authz_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/authz_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/authz_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/authz_tests.py Sun Dec 12 16:43:42 2010
@@ -1020,9 +1020,6 @@ def wc_wc_copy_revert(sbox):
wc_wc_copy(sbox)
- # Fails with a "No write-lock" error, as does "rm --force", on a
- # path under A2. Multiple repeats fail on different paths until the
- # command completes. No longer applies with op_depth.
svntest.actions.run_and_verify_svn(None, None, [],
'revert', '--recursive', sbox.ospath('A2'))
@@ -1092,10 +1089,8 @@ test_list = [ None,
Skip(authz_access_required_at_repo_root2,
svntest.main.is_ra_type_file),
Skip(multiple_matches, svntest.main.is_ra_type_file),
- Wimp("Needs op_depth", Skip(wc_wc_copy,
- svntest.main.is_ra_type_file)),
- Wimp("Redundant with op_depth", Skip(wc_wc_copy_revert,
- svntest.main.is_ra_type_file)),
+ Skip(wc_wc_copy, svntest.main.is_ra_type_file),
+ Skip(wc_wc_copy_revert, svntest.main.is_ra_type_file),
Skip(authz_recursive_ls,
svntest.main.is_ra_type_file),
]
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/basic_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/basic_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/basic_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/basic_tests.py Sun Dec 12 16:43:42 2010
@@ -211,16 +211,6 @@ def basic_update(sbox):
"update xx/xx", [], [],
'update', '--quiet', xx_path)
- # URL's are also skipped.
- urls = ('http://localhost/a/b/c', 'http://localhost', 'svn://localhost')
- for url in urls:
- exit_code, out, err = svntest.actions.run_and_verify_svn(
- "update " + url,
- ["Skipped '"+url+"'\n",
- "Summary of conflicts:\n",
- " Skipped paths: 1\n"], [],
- 'update', url)
-
#----------------------------------------------------------------------
def basic_mkdir_url(sbox):
"basic mkdir URL"
@@ -2486,12 +2476,14 @@ def basic_add_svn_format_file(sbox):
svntest.actions.run_and_verify_status(wc_dir, output)
# Issue 2586, Unhelpful error message: Unrecognized URL scheme for ''
+# See also input_validation_tests.py:invalid_mkdir_targets(), which tests
+# the same thing the other way around.
def basic_mkdir_mix_targets(sbox):
"mkdir mix url and local path should error"
sbox.build()
Y_url = sbox.repo_url + '/Y'
- expected_error = ".*Illegal repository URL 'subdir'"
+ expected_error = "svn: Cannot mix repository and working copy targets"
svntest.actions.run_and_verify_svn(None, None, expected_error,
'mkdir', '-m', 'log_msg', Y_url, 'subdir')
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/copy_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/copy_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/copy_tests.py Sun Dec 12 16:43:42 2010
@@ -1543,7 +1543,7 @@ def wc_to_wc_copy_deleted(sbox):
'A/B2' : Item(status='A ', wc_rev='-', copied='+'),
'A/B2/E' : Item(status=' ', wc_rev='-', copied='+'),
'A/B2/E/beta' : Item(status=' ', wc_rev='-', copied='+'),
- 'A/B2/E/alpha' : Item(status='D ', wc_rev=2),
+ 'A/B2/E/alpha' : Item(status='D ', wc_rev='-', copied='+'),
'A/B2/lambda' : Item(status='D ', wc_rev='-', copied='+'),
'A/B2/F' : Item(status='D ', wc_rev='-', copied='+'),
})
@@ -2411,6 +2411,8 @@ def move_dir_out_of_moved_dir(sbox):
None,
wc_dir)
+# Includes regression testing for issue #3429 ("svn mv A B; svn mv B A"
+# generates replace without history).
def move_file_back_and_forth(sbox):
"move a moved file back to original location"
@@ -2420,25 +2422,27 @@ def move_file_back_and_forth(sbox):
rho_path = os.path.join(wc_dir, 'A', 'D', 'G', 'rho')
rho_move_path = os.path.join(wc_dir, 'A', 'D', 'rho_moved')
- # Move A/D/G/rho to A/D/rho_moved
+ # Move A/D/G/rho away from and then back to its original path
svntest.actions.run_and_verify_svn(None, None, [], 'mv',
rho_path, rho_move_path)
-
- # Move the moved file: A/D/rho_moved to A/B/F/rho_move_moved
svntest.actions.run_and_verify_svn(None, None, [], 'mv',
rho_move_path, rho_path)
- # Created expected output tree for 'svn ci':
+ # Check expected status before commit
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+ expected_status.add({
+ 'A/D/G/rho' : Item(status='R ', copied='+', wc_rev='-'),
+ })
+ svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+ # Commit, and check expected output and status
expected_output = svntest.wc.State(wc_dir, {
'A/D/G/rho' : Item(verb='Replacing'),
})
-
- # Create expected status tree
expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
expected_status.add({
'A/D/G/rho' : Item(status=' ', wc_rev=2),
})
-
svntest.actions.run_and_verify_commit(wc_dir,
expected_output,
expected_status,
@@ -2446,6 +2450,8 @@ def move_file_back_and_forth(sbox):
wc_dir)
+# Includes regression testing for issue #3429 ("svn mv A B; svn mv B A"
+# generates replace without history).
def move_dir_back_and_forth(sbox):
"move a moved dir back to original location"
@@ -2474,6 +2480,23 @@ def move_dir_back_and_forth(sbox):
svntest.actions.run_and_verify_svn(None, None, expected_err,
'mv', D_move_path, D_path)
+ if svntest.main.wc_is_singledb(wc_dir):
+ # Verify that the status indicates a replace with history
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+ expected_status.add({
+ 'A/D' : Item(status='R ', copied='+', wc_rev='-'),
+ 'A/D/G' : Item(status=' ', copied='+', wc_rev='-'),
+ 'A/D/G/pi' : Item(status=' ', copied='+', wc_rev='-'),
+ 'A/D/G/rho' : Item(status=' ', copied='+', wc_rev='-'),
+ 'A/D/G/tau' : Item(status=' ', copied='+', wc_rev='-'),
+ 'A/D/gamma' : Item(status=' ', copied='+', wc_rev='-'),
+ 'A/D/H' : Item(status=' ', copied='+', wc_rev='-'),
+ 'A/D/H/chi' : Item(status=' ', copied='+', wc_rev='-'),
+ 'A/D/H/omega' : Item(status=' ', copied='+', wc_rev='-'),
+ 'A/D/H/psi' : Item(status=' ', copied='+', wc_rev='-'),
+ })
+ svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
def copy_move_added_paths(sbox):
"copy and move added paths without commits"
@@ -4422,10 +4445,10 @@ def move_dir_containing_move(sbox):
'A/B_tmp' : Item(status='A ', copied='+', wc_rev='-'),
# alpha has a revision that isn't reported by status.
'A/B_tmp/E' : Item(status=' ', copied='+', wc_rev='-'),
- 'A/B_tmp/E/alpha' : Item(status='D ', wc_rev='?', entry_rev='1'),
+ 'A/B_tmp/E/alpha' : Item(status='D ', copied='+', wc_rev='-'),
'A/B_tmp/E/alpha_moved' : Item(status='A ', copied='+', wc_rev='-'),
'A/B_tmp/E/beta' : Item(status=' ', copied='+', wc_rev='-'),
- 'A/B_tmp/F' : Item(status='D ', wc_rev='?'),
+ 'A/B_tmp/F' : Item(status='D ', copied='+', wc_rev='-'),
'A/B_tmp/F_moved' : Item(status='A ', copied='+', wc_rev='-'),
'A/B_tmp/lambda' : Item(status=' ', copied='+', wc_rev='-'),
})
@@ -4445,12 +4468,11 @@ def move_dir_containing_move(sbox):
'A/B_tmp/lambda')
expected_status.add({
'A/B_moved' : Item(status='A ', copied='+', wc_rev='-'),
- # alpha has a revision that isn't reported by status.
'A/B_moved/E' : Item(status=' ', copied='+', wc_rev='-'),
- 'A/B_moved/E/alpha' : Item(status='D ', wc_rev='?', entry_rev='1'),
+ 'A/B_moved/E/alpha' : Item(status='D ', copied='+', wc_rev='-'),
'A/B_moved/E/alpha_moved' : Item(status='A ', copied='+', wc_rev='-'),
'A/B_moved/E/beta' : Item(status=' ', copied='+', wc_rev='-'),
- 'A/B_moved/F' : Item(status='D ', wc_rev='?'),
+ 'A/B_moved/F' : Item(status='D ', copied='+', wc_rev='-'),
'A/B_moved/F_moved' : Item(status='A ', copied='+', wc_rev='-'),
'A/B_moved/lambda' : Item(status=' ', copied='+', wc_rev='-'),
})
@@ -4769,8 +4791,7 @@ def copy_delete_undo(sbox, use_revert):
# Delete a child
svntest.main.run_svn(wc_dir, 'rm', sbox.ospath('A/B/E-copied/alpha'))
- expected_status.tweak('A/B/E-copied/alpha', status='D ', copied=None,
- wc_rev='?', entry_rev='1')
+ expected_status.tweak('A/B/E-copied/alpha', status='D ')
svntest.actions.run_and_verify_status(wc_dir, expected_status)
# Undo the whole copy
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/depth_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/depth_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/depth_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/depth_tests.py Sun Dec 12 16:43:42 2010
@@ -1062,12 +1062,12 @@ def diff_in_depthy_wc(sbox):
"@@ -1 +1 @@\n",
"-new text\n",
"+This is the file 'iota'.\n",
- "Index: \n",
+ "Index: .\n",
"===================================================================\n",
- "--- \t(revision 2)\n",
- "+++ \t(working copy)\n",
+ "--- .\t(revision 2)\n",
+ "+++ .\t(working copy)\n",
"\n",
- "Property changes on: \n",
+ "Property changes on: .\n",
"___________________________________________________________________\n",
"Deleted: foo\n",
"## -1 +0,0 ##\n",
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/diff_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/diff_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/diff_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/diff_tests.py Sun Dec 12 16:43:42 2010
@@ -34,6 +34,7 @@ import svntest
# (abbreviation)
Skip = svntest.testcase.Skip
XFail = svntest.testcase.XFail
+Wimp = svntest.testcase.Wimp
Item = svntest.wc.StateItem
@@ -2868,7 +2869,7 @@ def diff_with_depth(sbox):
diff = [
"\n",
- "Property changes on: \n",
+ "Property changes on: .\n",
"___________________________________________________________________\n",
"Added: foo1\n",
"## -0,0 +1 ##\n",
@@ -2892,7 +2893,7 @@ def diff_with_depth(sbox):
"## -0,0 +1 ##\n",
"+bar4\n"]
- dot_header = make_diff_header("", "revision 1", "working copy")
+ 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")
@@ -2939,7 +2940,7 @@ def diff_with_depth(sbox):
svntest.actions.run_and_verify_svn(None, None, [],
'ci', '-m', '')
- dot_header = make_diff_header("", "revision 1", "revision 2")
+ 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")
@@ -3011,12 +3012,12 @@ def diff_with_depth(sbox):
"## -1 +1 ##\n",
"-bar2\n",
"+baz2\n",
- "Index: \n",
+ "Index: .\n",
"===================================================================\n",
- "--- \t(revision 2)\n",
- "+++ \t(working copy)\n",
+ "--- .\t(revision 2)\n",
+ "+++ .\t(working copy)\n",
"\n",
- "Property changes on: \n",
+ "Property changes on: .\n",
"___________________________________________________________________\n",
"Modified: foo1\n",
"## -1 +1 ##\n",
@@ -3735,7 +3736,7 @@ def diff_git_with_props_on_dir(sbox):
was_cwd = os.getcwd()
os.chdir(wc_dir)
- expected_output = make_git_diff_header("", "", "revision 1",
+ expected_output = make_git_diff_header(".", "", "revision 1",
"revision 2",
add=False, text_changes=False) + [
"\n",
@@ -3795,7 +3796,7 @@ test_list = [ None,
diff_weird_author,
diff_ignore_whitespace,
diff_ignore_eolstyle,
- XFail(diff_in_renamed_folder),
+ diff_in_renamed_folder,
diff_with_depth,
diff_ignore_eolstyle_empty_lines,
diff_backward_repos_wc_copy,
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/entries_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/entries_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/entries_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/entries_tests.py Sun Dec 12 16:43:42 2010
@@ -233,12 +233,9 @@ def deletion_details(sbox):
entries = svntest.main.run_entriesdump(D2_G_path)
check_names(entries, 'pi')
- # case (1) of the DELETED nodes COPIED handling (see comment in
- # read_entries). we are a deletion of a copied subtree. thus, extra
- # work at commit time. thus, not COPIED.
# oh, and this sucker has a URL, too
validate(entries['pi'], url='%s/A/D2/G/pi' % sbox.repo_url,
- copied=False, schedule=SCHEDULE_DELETE)
+ copied=True, schedule=SCHEDULE_DELETE)
### hmm. somehow, subtrees can be *added* over a *deleted* subtree.
### maybe this can happen via 'svn merge' ? ... the operations below
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/externals_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/externals_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/externals_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/externals_tests.py Sun Dec 12 16:43:42 2010
@@ -1007,8 +1007,7 @@ def cannot_move_or_remove_file_externals
# Bring the working copy up to date and check that the file the file
# external is switched to still exists.
svntest.actions.run_and_verify_svn(None, None, [],
- 'up',
- repo_url, wc_dir)
+ 'up', wc_dir)
open(os.path.join(wc_dir, 'A', 'D', 'gamma')).close()
@@ -1036,8 +1035,7 @@ def can_place_file_external_into_dir_ext
# Bring the working copy up to date and check that the file the file
# external is switched to still exists.
svntest.actions.run_and_verify_svn(None, None, [],
- 'up',
- repo_url, wc_dir)
+ 'up', wc_dir)
beta1_path = os.path.join(wc_dir, 'A', 'B', 'E', 'beta')
beta1_contents = open(beta1_path).read()
@@ -1064,8 +1062,7 @@ def can_place_file_external_into_dir_ext
None,
expected_error,
1,
- 'up',
- repo_url, wc_dir)
+ 'up', wc_dir)
#----------------------------------------------------------------------
@@ -1082,8 +1079,7 @@ def external_into_path_with_spaces(sbox)
change_external(wc_dir, ext)
svntest.actions.run_and_verify_svn(None, None, [],
- 'up',
- repo_url, wc_dir)
+ 'up', wc_dir)
probe_paths_exist([
os.path.join(wc_dir, 'A', 'copy of D'),
os.path.join(wc_dir, 'A', 'another copy of D'),
@@ -1334,8 +1330,7 @@ def relegate_external(sbox):
externals_desc = '^/A/B/E external'
change_external(A_path, externals_desc)
svntest.actions.run_and_verify_svn(None, None, [],
- 'up',
- repo_url, wc_dir)
+ 'up', wc_dir)
# create another repository
other_repo_dir, other_repo_url = sbox.add_repo_path('other')
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/input_validation_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/input_validation_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/input_validation_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/input_validation_tests.py Sun Dec 12 16:43:42 2010
@@ -234,6 +234,20 @@ def invalid_relocate_targets(sbox):
run_and_verify_svn_in_wc(sbox, "svn:.*is not a local path", 'relocate',
"^/", "^/", "^/")
+# See also basic_tests.py:basic_mkdir_mix_targets(), which tests
+# the same thing the other way around.
+def invalid_mkdir_targets(sbox):
+ "invalid targets for 'mkdir'"
+ sbox.build(read_only=True)
+ run_and_verify_svn_in_wc(sbox, "svn: Cannot mix repository and working "
+ "copy targets", 'mkdir', "folder", "^/folder")
+
+def invalid_update_targets(sbox):
+ "non-working copy paths for 'update'"
+ sbox.build(read_only=True)
+ run_and_verify_svn_in_wc(sbox, "svn:.*is not a local path", 'update',
+ "^/")
+
########################################################################
# Run the tests
@@ -261,6 +275,8 @@ test_list = [ None,
invalid_patch_targets,
invalid_switch_targets,
invalid_relocate_targets,
+ invalid_mkdir_targets,
+ invalid_update_targets,
]
if __name__ == '__main__':
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/merge_tree_conflict_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/merge_tree_conflict_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/merge_tree_conflict_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/merge_tree_conflict_tests.py Sun Dec 12 16:43:42 2010
@@ -35,6 +35,7 @@ from svntest import main, wc, verify, ac
# (abbreviation)
Item = wc.StateItem
XFail = svntest.testcase.XFail
+Wimp = svntest.testcase.Wimp
Skip = svntest.testcase.Skip
SkipUnless = svntest.testcase.SkipUnless
@@ -1877,7 +1878,7 @@ def merge_replace_causes_tree_conflict2(
test_list = [ None,
SkipUnless(delete_file_and_dir,
server_has_mergeinfo),
- SkipUnless(XFail(merge_catches_nonexistent_target),
+ SkipUnless(merge_catches_nonexistent_target,
server_has_mergeinfo),
SkipUnless(merge_tree_deleted_in_target,
server_has_mergeinfo),
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnlook_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnlook_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnlook_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnlook_tests.py Sun Dec 12 16:43:42 2010
@@ -471,14 +471,14 @@ def diff_ignore_whitespace(sbox):
# Check the output of 'svnlook diff -x --ignore-space-change' on mu.
# It should not print anything.
output = run_svnlook('diff', '-r2', '-x', '--ignore-space-change',
- repo_dir, '/A/mu')
+ repo_dir)
if output != []:
raise svntest.Failure
# Check the output of 'svnlook diff -x --ignore-all-space' on mu.
# It should not print anything.
output = run_svnlook('diff', '-r2', '-x', '--ignore-all-space',
- repo_dir, '/A/mu')
+ repo_dir)
if output != []:
raise svntest.Failure
@@ -528,7 +528,7 @@ def diff_ignore_eolstyle(sbox):
output = run_svnlook('diff', '-r', str(rev + 1), '-x',
- '--ignore-eol-style', repo_dir, '/A/mu')
+ '--ignore-eol-style', repo_dir)
rev += 1
canonical_mu_path = mu_path.replace(os.path.sep, '/')
@@ -565,7 +565,7 @@ def diff_binary(sbox):
svntest.main.run_svn(None, 'ci', '-m', 'log msg', mu_path)
# Now run 'svnlook diff' and look for the "Binary files differ" message.
- output = run_svnlook('diff', repo_dir, '/A/mu')
+ output = run_svnlook('diff', repo_dir)
if not "(Binary files differ)\n" in output:
raise svntest.Failure("No 'Binary files differ' indication in "
"'svnlook diff' output.")
@@ -637,7 +637,7 @@ def output_command(fp, cmd, opt):
return status
for (svnlook_cmd, svnlook_opt) in %s:
- output_command(fp, svnlook_cmd, svnlook_opt.split(' '))
+ output_command(fp, svnlook_cmd, svnlook_opt.split())
fp.close()"""
pre_commit_hook = svntest.main.get_pre_commit_hook_path(repo_dir)
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnrdump_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnrdump_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnrdump_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnrdump_tests.py Sun Dec 12 16:43:42 2010
@@ -356,7 +356,7 @@ test_list = [ None,
copy_bad_line_endings_dump,
commit_a_copy_of_root_dump,
commit_a_copy_of_root_load,
- descend_into_replace_dump,
+ XFail(descend_into_replace_dump, svntest.main.is_fs_type_bdb),
]
if __name__ == '__main__':
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnsync_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnsync_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnsync_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svnsync_tests.py Sun Dec 12 16:43:42 2010
@@ -884,9 +884,8 @@ test_list = [ None,
detect_meddling,
Skip(basic_authz, svntest.main.is_ra_type_file),
Skip(copy_from_unreadable_dir, svntest.main.is_ra_type_file),
- Wimp("Needs local add below copy support in WC-NG",
- Skip(copy_with_mod_from_unreadable_dir,
- svntest.main.is_ra_type_file)),
+ Skip(copy_with_mod_from_unreadable_dir,
+ svntest.main.is_ra_type_file),
Skip(copy_with_mod_from_unreadable_dir_and_copy,
svntest.main.is_ra_type_file),
url_encoding,
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svntest/actions.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svntest/actions.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svntest/actions.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svntest/actions.py Sun Dec 12 16:43:42 2010
@@ -1852,7 +1852,6 @@ def inject_conflict_into_wc(sbox, state_
conflicting_contents, contents,
merged_rev)
exit_code, output, errput = main.run_svn(None, "up", "-r", str(merged_rev),
- sbox.repo_url + "/" + state_path,
file_path)
if expected_status:
expected_status.tweak(state_path, wc_rev=merged_rev)
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svntest/main.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/svntest/main.py Sun Dec 12 16:43:42 2010
@@ -1049,6 +1049,9 @@ def is_fs_type_fsfs():
# This assumes that fsfs is the default fs implementation.
return options.fs_type == 'fsfs' or options.fs_type is None
+def is_fs_type_bdb():
+ return options.fs_type == 'bdb'
+
def is_os_windows():
return os.name == 'nt'
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/switch_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/switch_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/switch_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/switch_tests.py Sun Dec 12 16:43:42 2010
@@ -35,6 +35,7 @@ from svntest import verify, actions, mai
Skip = svntest.testcase.Skip
SkipUnless = svntest.testcase.SkipUnless
XFail = svntest.testcase.XFail
+Wimp = svntest.testcase.Wimp
Item = svntest.wc.StateItem
from svntest.main import SVN_PROP_MERGEINFO, server_has_mergeinfo
@@ -558,10 +559,10 @@ def relocate_deleted_missing_copied(sbox
expected_status.add({
'A/D2' : Item(status='A ', wc_rev='-', copied='+'),
'A/D2/gamma' : Item(status=' ', wc_rev='-', copied='+'),
- 'A/D2/G' : Item(status='D ', wc_rev='?'),
- 'A/D2/G/pi' : Item(status='D ', wc_rev='?'),
- 'A/D2/G/rho' : Item(status='D ', wc_rev='?'),
- 'A/D2/G/tau' : Item(status='D ', wc_rev='?'),
+ 'A/D2/G' : Item(status='D ', wc_rev='-', copied='+'),
+ 'A/D2/G/pi' : Item(status='D ', wc_rev='-', copied='+'),
+ 'A/D2/G/rho' : Item(status='D ', wc_rev='-', copied='+'),
+ 'A/D2/G/tau' : Item(status='D ', wc_rev='-', copied='+'),
'A/D2/H' : Item(status=' ', wc_rev='-', copied='+'),
'A/D2/H/chi' : Item(status=' ', wc_rev='-', copied='+'),
'A/D2/H/omega' : Item(status=' ', wc_rev='-', copied='+'),
@@ -614,7 +615,7 @@ def relocate_deleted_missing_copied(sbox
'A/D2/H', 'A/D2/H/chi', 'A/D2/H/omega', 'A/D2/H/psi',
wc_rev='-')
expected_status.tweak('A/D2/G', 'A/D2/G/pi', 'A/D2/G/rho', 'A/D2/G/tau',
- wc_rev='?')
+ copied='+', wc_rev='-')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
@@ -3165,7 +3166,7 @@ test_list = [ None,
tolerate_local_mods,
tree_conflicts_on_switch_1_1,
tree_conflicts_on_switch_1_2,
- XFail(tree_conflicts_on_switch_2_1),
+ tree_conflicts_on_switch_2_1,
tree_conflicts_on_switch_2_2,
tree_conflicts_on_switch_3,
single_file_relocate,
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/update_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/update_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/update_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/update_tests.py Sun Dec 12 16:43:42 2010
@@ -38,6 +38,7 @@ from merge_tests import set_up_branch
Skip = svntest.testcase.Skip
SkipUnless = svntest.testcase.SkipUnless
XFail = svntest.testcase.XFail
+Wimp = svntest.testcase.Wimp
Item = svntest.wc.StateItem
exp_noop_up_out = svntest.actions.expected_noop_update_output
@@ -5397,7 +5398,7 @@ test_list = [ None,
restarted_update_should_delete_dir_prop,
tree_conflicts_on_update_1_1,
tree_conflicts_on_update_1_2,
- XFail(tree_conflicts_on_update_2_1),
+ tree_conflicts_on_update_2_1,
tree_conflicts_on_update_2_2,
XFail(tree_conflicts_on_update_2_3),
tree_conflicts_on_update_3,
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/upgrade_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/upgrade_tests.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/upgrade_tests.py (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/cmdline/upgrade_tests.py Sun Dec 12 16:43:42 2010
@@ -672,7 +672,22 @@ def dirs_only_upgrade(sbox):
})
run_and_verify_status_no_server(sbox.wc_dir, expected_status)
-
+def read_tree_conflict_data(sbox, path):
+ dot_svn = svntest.main.get_admin_name()
+ db = svntest.sqlite3.connect(os.path.join(sbox.wc_dir, dot_svn, 'wc.db'))
+ for row in db.execute("select tree_conflict_data from actual_node "
+ "where tree_conflict_data is not null "
+ "and local_relpath = '%s'" % path):
+ return
+ raise svntest.Failure("conflict expected for '%s'" % path)
+
+def no_actual_node(sbox, path):
+ dot_svn = svntest.main.get_admin_name()
+ db = svntest.sqlite3.connect(os.path.join(sbox.wc_dir, dot_svn, 'wc.db'))
+ for row in db.execute("select 1 from actual_node "
+ "where local_relpath = '%s'" % path):
+ raise svntest.Failure("no actual node expected for '%s'" % path)
+
def upgrade_tree_conflict_data(sbox):
"upgrade tree conflict data (f20->f21)"
@@ -688,7 +703,31 @@ def upgrade_tree_conflict_data(sbox):
expected_status.tweak('A/D/G/rho', status='A ', copied='+',
treeconflict='C', wc_rev='-')
- run_and_verify_status_no_server(wc_dir, expected_status)
+ # Look inside pre-upgrade database
+ read_tree_conflict_data(sbox, 'A/D/G')
+ no_actual_node(sbox, 'A/D/G/pi')
+ no_actual_node(sbox, 'A/D/G/rho')
+ no_actual_node(sbox, 'A/D/G/tau')
+
+ # While the upgrade from f20 to f21 will work the upgrade from f22
+ # to f23 will not, since working nodes are present, so the
+ # auto-upgrade will fail. If this happens we cannot use the
+ # Subversion libraries to query the working copy.
+ exit_code, output, errput = svntest.main.run_svn('format 22', 'st', wc_dir)
+
+ if not exit_code:
+ run_and_verify_status_no_server(wc_dir, expected_status)
+ else:
+ if not svntest.verify.RegexOutput('.*format 22 with WORKING nodes.*',
+ match_all=False).matches(errput):
+ raise svntest.Failure()
+
+ # Look insde post-upgrade database
+ read_tree_conflict_data(sbox, 'A/D/G/pi')
+ read_tree_conflict_data(sbox, 'A/D/G/rho')
+ read_tree_conflict_data(sbox, 'A/D/G/tau')
+ # no_actual_node(sbox, 'A/D/G') ### not removed but should be?
+
def delete_in_copy_upgrade(sbox):
"upgrade a delete within a copy"
@@ -697,17 +736,20 @@ def delete_in_copy_upgrade(sbox):
wc_dir = sbox.wc_dir
replace_sbox_with_tarfile(sbox, 'delete-in-copy.tar.bz2')
- # Doesn't work, creates spurious base nodes for the copy
svntest.actions.run_and_verify_svn(None, None, [],
'upgrade', sbox.wc_dir)
+ # This doesn't fail with SVN_WC__OP_DEPTH but doesn't do the right
+ # thing either: B-copied looks like a copy where E and F are
+ # not-present rather than deleted.
+
expected_status = svntest.actions.get_virginal_state(sbox.wc_dir, 1)
expected_status.add({
'A/B-copied' : Item(status='A ', copied='+', wc_rev='-'),
'A/B-copied/lambda' : Item(status=' ', copied='+', wc_rev='-'),
- 'A/B-copied/E' : Item(status='D ', wc_rev='?'),
- 'A/B-copied/E/alpha' : Item(status='D ', wc_rev='?'),
- 'A/B-copied/E/beta' : Item(status='D ', wc_rev='?'),
+ 'A/B-copied/E' : Item(status='D ', copied='+', wc_rev='-'),
+ 'A/B-copied/E/alpha' : Item(status='D ', copied='+', wc_rev='-'),
+ 'A/B-copied/E/beta' : Item(status='D ', copied='+', wc_rev='-'),
'A/B-copied/F' : Item(status=' ', copied='+', wc_rev='-'),
})
run_and_verify_status_no_server(sbox.wc_dir, expected_status)
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_fs/fs-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_fs/fs-test.c?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_fs/fs-test.c (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_fs/fs-test.c Sun Dec 12 16:43:42 2010
@@ -4253,7 +4253,8 @@ verify_checksum(const svn_test_opts_t *o
against our idea of its checksum. They should be the same. */
str = svn_stringbuf_create("My text editor charges me rent.", pool);
- svn_checksum(&expected_checksum, svn_checksum_md5, str->data, str->len, pool);
+ SVN_ERR(svn_checksum(&expected_checksum, svn_checksum_md5, str->data,
+ str->len, pool));
SVN_ERR(svn_test__create_fs(&fs, "test-repo-verify-checksum",
opts, pool));
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_subr/auth-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_subr/auth-test.c?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_subr/auth-test.c (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_subr/auth-test.c Sun Dec 12 16:43:42 2010
@@ -34,7 +34,8 @@ test_platform_specific_auth_providers(ap
int number_of_providers = 0;
/* Test non-available auth provider */
- svn_auth_get_platform_specific_provider(&provider, "fake", "fake", pool);
+ SVN_ERR(svn_auth_get_platform_specific_provider(&provider, "fake", "fake",
+ pool));
if (provider)
return svn_error_createf
@@ -44,7 +45,8 @@ test_platform_specific_auth_providers(ap
/* Make sure you get appropriate number of providers when retrieving
all auth providers */
- svn_auth_get_platform_specific_client_providers(&providers, NULL, pool);
+ SVN_ERR(svn_auth_get_platform_specific_client_providers(&providers, NULL,
+ pool));
#ifdef SVN_HAVE_GNOME_KEYRING
number_of_providers += 2;
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_wc/db-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_wc/db-test.c?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_wc/db-test.c (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_wc/db-test.c Sun Dec 12 16:43:42 2010
@@ -181,6 +181,11 @@ static const char * const TESTING_DATA =
" 1, 'I', 1, '', 2, 'some/dir', 2, 'normal',"
" 0, null, 'dir', '()', 'immediates', null, null, 2, " TIME_2s ", '" AUTHOR_2 "',"
" null, null, null, null);"
+
+ /* I'm not sure what the working J is supposed to represent. It
+ replaces the base J, but is it a copy or not? It has no
+ copyfrom, but nodes like J/J-e appear to be deleted which
+ 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,"
@@ -201,6 +206,7 @@ static const char * const TESTING_DATA =
" 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, null, null);"
+#ifndef SVN_WC__OP_DEPTH
"insert into nodes values ("
" 1, 'J/J-c', 1, 'J', null, null, null, 'not-present',"
" 0, null, 'dir', '()', null, null, null, null, null, null,"
@@ -209,10 +215,29 @@ static const char * const TESTING_DATA =
" 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, null, null);"
+#else
+ "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, 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, 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, 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, null, null);"
+#endif
"insert into nodes values ("
" 1, 'J/J-d', 2, 'J', 2, 'moved/file', 2, 'normal',"
" 1, null, 'file', '()', null, '$md5 $" MD5_1 "', null, 2, " TIME_2s ", '" AUTHOR_2 "',"
" 10, null, null, null);"
+#ifndef SVN_WC__OP_DEPTH
"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,"
@@ -225,6 +250,32 @@ static const char * const TESTING_DATA =
" 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, null, null);"
+#else
+ "insert into nodes values ("
+ " 1, 'J/J-e', 1, 'J', null, null, null, 'normal',"
+ " 0, 'other/place', 'dir', '()', 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, 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, null, null);"
+ "insert into nodes values ("
+ " 1, 'J/J-e', 2, 'J', null, null, null, 'base-deleted',"
+ " 0, 'other/place', 'dir', '()', 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, 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, null, null);"
+#endif
"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,"
@@ -253,6 +304,7 @@ static const char * const TESTING_DATA =
" 1, 'L', 1, '', null, null, null, 'normal',"
" 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
" null, null, null, null);"
+#ifndef SVN_WC__OP_DEPTH
"insert into nodes values ("
" 1, 'L/L-a', 1, 'L', null, null, null, 'not-present',"
" 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
@@ -261,6 +313,24 @@ static const char * const TESTING_DATA =
" 1, 'L/L-a/L-a-a', 1, 'L', null, null, null, 'not-present',"
" 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
" null, null, null, null);"
+#else
+ "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, null, null);"
+ "insert into nodes values ("
+ " 1, 'L/L-a/L-a-a', 1, 'L', null, null, null, 'normal',"
+ " 0, null, 'dir', '()', 'immediates', 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, null, null);"
+ "insert into nodes values ("
+ " 1, 'L/L-a/L-a-a', 2, 'L', null, null, null, 'base-deleted',"
+ " 0, null, 'dir', '()', 'immediates', null, null, null, null, null,"
+ " null, null, null, null);"
+#endif
"insert into actual_node values ("
" 1, 'I', '', null, null, null, null, null, 'changelist', null, "
" null, null, null, null, null);"
@@ -1032,7 +1102,6 @@ test_scan_deletion(apr_pool_t *pool)
const char *local_abspath;
svn_wc__db_t *db;
const char *base_del_abspath;
- svn_boolean_t base_replaced;
const char *work_del_abspath;
const char *moved_to_abspath;
@@ -1043,14 +1112,12 @@ test_scan_deletion(apr_pool_t *pool)
/* Node was moved elsewhere. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "J/J-e", pool),
pool, pool));
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-e",
base_del_abspath, pool));
- SVN_TEST_ASSERT(base_replaced);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "other/place",
moved_to_abspath, pool));
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-e",
@@ -1059,14 +1126,12 @@ test_scan_deletion(apr_pool_t *pool)
/* Node was moved elsewhere (child of operation root). */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "J/J-e/J-e-a", pool),
pool, pool));
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-e",
base_del_abspath, pool));
- SVN_TEST_ASSERT(base_replaced);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "other/place",
moved_to_abspath, pool));
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-e",
@@ -1075,7 +1140,6 @@ test_scan_deletion(apr_pool_t *pool)
/* Root of delete. Parent is a WORKING node. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "J/J-c", pool),
@@ -1083,7 +1147,6 @@ test_scan_deletion(apr_pool_t *pool)
/* Implicit delete of "J" (via replacement). */
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J",
base_del_abspath, pool));
- SVN_TEST_ASSERT(base_replaced);
SVN_TEST_ASSERT(moved_to_abspath == NULL);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-c",
work_del_abspath, pool));
@@ -1091,7 +1154,6 @@ test_scan_deletion(apr_pool_t *pool)
/* Child of a deleted root. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "J/J-c/J-c-a", pool),
@@ -1099,7 +1161,6 @@ test_scan_deletion(apr_pool_t *pool)
/* Implicit delete of "J" (via replacement). */
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J",
base_del_abspath, pool));
- SVN_TEST_ASSERT(base_replaced);
SVN_TEST_ASSERT(moved_to_abspath == NULL);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-c",
work_del_abspath, pool));
@@ -1107,23 +1168,30 @@ test_scan_deletion(apr_pool_t *pool)
/* Base-deleted tree extending past deleted WORKING subtree. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "J/J-e/J-e-b/Jeba", pool),
pool, pool));
+ /* ### I don't understand this. "J/J-e/J-e-b/Jeba" is a deleted
+ base node that is not overlayed by the replacement rooted at "J".
+ Why does base_del_abspath refer to "J-e"? */
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-e",
base_del_abspath, pool));
- SVN_TEST_ASSERT(base_replaced);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "other/place",
moved_to_abspath, pool));
+#ifndef SVN_WC__OP_DEPTH
+ /* ### I don't understand this. "J/J-e/J-e-b/Jeba" is a deleted
+ base node that is not overlayed by the replacement rooted at "J".
+ Why is work_del_abspath not NULL? */
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J/J-e",
work_del_abspath, pool));
+#else
+ SVN_TEST_ASSERT(work_del_abspath == NULL);
+#endif
/* Base-deleted tree extending past added WORKING tree. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "J/J-f/J-f-a", pool),
@@ -1131,49 +1199,42 @@ test_scan_deletion(apr_pool_t *pool)
/* Implicit delete of "J" (via replacement). */
SVN_TEST_ASSERT(validate_abspath(local_abspath, "J",
base_del_abspath, pool));
- SVN_TEST_ASSERT(base_replaced);
SVN_TEST_ASSERT(moved_to_abspath == NULL);
SVN_TEST_ASSERT(work_del_abspath == NULL);
/* Root of delete. Parent is a BASE node. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "K", pool),
pool, pool));
SVN_TEST_ASSERT(validate_abspath(local_abspath, "K",
base_del_abspath, pool));
- SVN_TEST_ASSERT(!base_replaced);
SVN_TEST_ASSERT(moved_to_abspath == NULL);
SVN_TEST_ASSERT(work_del_abspath == NULL);
/* Base-deleted tree. Start below root. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "K/K-a", pool),
pool, pool));
SVN_TEST_ASSERT(validate_abspath(local_abspath, "K",
base_del_abspath, pool));
- SVN_TEST_ASSERT(!base_replaced);
SVN_TEST_ASSERT(moved_to_abspath == NULL);
SVN_TEST_ASSERT(work_del_abspath == NULL);
/* Base-deleted tree via move. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "K/K-b", pool),
pool, pool));
SVN_TEST_ASSERT(validate_abspath(local_abspath, "K/K-b",
base_del_abspath, pool));
- SVN_TEST_ASSERT(!base_replaced);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "moved/away",
moved_to_abspath, pool));
SVN_TEST_ASSERT(work_del_abspath == NULL);
@@ -1181,13 +1242,11 @@ test_scan_deletion(apr_pool_t *pool)
/* Subtree deletion of added tree. Start at child. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "L/L-a/L-a-a", pool),
pool, pool));
SVN_TEST_ASSERT(base_del_abspath == NULL);
- SVN_TEST_ASSERT(!base_replaced);
SVN_TEST_ASSERT(moved_to_abspath == NULL);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "L/L-a",
work_del_abspath, pool));
@@ -1195,13 +1254,11 @@ test_scan_deletion(apr_pool_t *pool)
/* Subtree deletion of added tree. Start at root. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "L/L-a", pool),
pool, pool));
SVN_TEST_ASSERT(base_del_abspath == NULL);
- SVN_TEST_ASSERT(!base_replaced);
SVN_TEST_ASSERT(moved_to_abspath == NULL);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "L/L-a",
work_del_abspath, pool));
@@ -1209,13 +1266,11 @@ test_scan_deletion(apr_pool_t *pool)
/* Root of delete, parent converted to BASE during post-commit. */
SVN_ERR(svn_wc__db_scan_deletion(
&base_del_abspath,
- &base_replaced,
&moved_to_abspath,
&work_del_abspath,
db, svn_dirent_join(local_abspath, "M/M-a", pool),
pool, pool));
SVN_TEST_ASSERT(base_del_abspath == NULL);
- SVN_TEST_ASSERT(!base_replaced);
SVN_TEST_ASSERT(moved_to_abspath == NULL);
SVN_TEST_ASSERT(validate_abspath(local_abspath, "M/M-a",
work_del_abspath, pool));
Modified: subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_wc/op-depth-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_wc/op-depth-test.c?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_wc/op-depth-test.c (original)
+++ subversion/branches/diff-optimizations-bytes/subversion/tests/libsvn_wc/op-depth-test.c Sun Dec 12 16:43:42 2010
@@ -938,9 +938,12 @@ test_delete_of_copies(const svn_test_opt
FALSE, TRUE, NULL, NULL, NULL, NULL, pool));
{
nodes_row_t rows[] = {
- { 2, "A/B-copied/E", "not-present", 1, "A/B/E" },
- { 2, "A/B-copied/E/alpha", "not-present", 1, "A/B/E/alpha" },
- { 2, "A/B-copied/E/beta", "not-present", 1, "A/B/E/beta" },
+ { 2, "A/B-copied/E", "normal", 1, "A/B/E" },
+ { 2, "A/B-copied/E/alpha", "normal", 1, "A/B/E/alpha" },
+ { 2, "A/B-copied/E/beta", "normal", 1, "A/B/E/beta" },
+ { 3, "A/B-copied/E", "base-deleted", NO_COPY_FROM },
+ { 3, "A/B-copied/E/alpha", "base-deleted", NO_COPY_FROM },
+ { 3, "A/B-copied/E/beta", "base-deleted", NO_COPY_FROM },
{ 0 }
};
SVN_ERR(check_db_rows(&b, "A/B-copied/E", rows));
@@ -949,13 +952,15 @@ test_delete_of_copies(const svn_test_opt
SVN_ERR(wc_copy(&b, "A/D/G", "A/B-copied/E"));
{
nodes_row_t rows[] = {
- { 2, "A/B-copied/E", "not-present", 1, "A/B/E" },
- { 2, "A/B-copied/E/alpha", "not-present", 1, "A/B/E/alpha" },
- { 2, "A/B-copied/E/beta", "not-present", 1, "A/B/E/beta" },
- { 3, "A/B-copied/E", "normal", 1, "A/D/G" },
- { 3, "A/B-copied/E/pi", "normal", 1, "A/D/G/pi" },
- { 3, "A/B-copied/E/rho", "normal", 1, "A/D/G/rho" },
- { 3, "A/B-copied/E/tau", "normal", 1, "A/D/G/tau" },
+ { 2, "A/B-copied/E", "normal", 1, "A/B/E" },
+ { 2, "A/B-copied/E/alpha", "normal", 1, "A/B/E/alpha" },
+ { 2, "A/B-copied/E/beta", "normal", 1, "A/B/E/beta" },
+ { 3, "A/B-copied/E", "normal", 1, "A/D/G" },
+ { 3, "A/B-copied/E/alpha", "base-deleted", NO_COPY_FROM },
+ { 3, "A/B-copied/E/beta", "base-deleted", NO_COPY_FROM },
+ { 3, "A/B-copied/E/pi", "normal", 1, "A/D/G/pi" },
+ { 3, "A/B-copied/E/rho", "normal", 1, "A/D/G/rho" },
+ { 3, "A/B-copied/E/tau", "normal", 1, "A/D/G/tau" },
{ 0 }
};
SVN_ERR(check_db_rows(&b, "A/B-copied/E", rows));
@@ -965,13 +970,16 @@ test_delete_of_copies(const svn_test_opt
FALSE, TRUE, NULL, NULL, NULL, NULL, pool));
{
nodes_row_t rows[] = {
- { 2, "A/B-copied/E", "not-present", 1, "A/B/E" },
- { 2, "A/B-copied/E/alpha", "not-present", 1, "A/B/E/alpha" },
- { 2, "A/B-copied/E/beta", "not-present", 1, "A/B/E/beta" },
- { 3, "A/B-copied/E", "normal", 1, "A/D/G" },
- { 3, "A/B-copied/E/pi", "normal", 1, "A/D/G/pi" },
- { 3, "A/B-copied/E/rho", "not-present", 1, "A/D/G/rho" },
- { 3, "A/B-copied/E/tau", "normal", 1, "A/D/G/tau" },
+ { 2, "A/B-copied/E", "normal", 1, "A/B/E" },
+ { 2, "A/B-copied/E/alpha", "normal", 1, "A/B/E/alpha" },
+ { 2, "A/B-copied/E/beta", "normal", 1, "A/B/E/beta" },
+ { 3, "A/B-copied/E", "normal", 1, "A/D/G" },
+ { 3, "A/B-copied/E/alpha", "base-deleted", NO_COPY_FROM },
+ { 3, "A/B-copied/E/beta", "base-deleted", NO_COPY_FROM },
+ { 3, "A/B-copied/E/pi", "normal", 1, "A/D/G/pi" },
+ { 3, "A/B-copied/E/rho", "normal", 1, "A/D/G/rho" },
+ { 3, "A/B-copied/E/tau", "normal", 1, "A/D/G/tau" },
+ { 4, "A/B-copied/E/rho", "base-deleted", NO_COPY_FROM },
{ 0 }
};
SVN_ERR(check_db_rows(&b, "A/B-copied/E", rows));
@@ -981,9 +989,12 @@ test_delete_of_copies(const svn_test_opt
FALSE, TRUE, NULL, NULL, NULL, NULL, pool));
{
nodes_row_t rows[] = {
- { 2, "A/B-copied/E", "not-present", 1, "A/B/E" },
- { 2, "A/B-copied/E/alpha", "not-present", 1, "A/B/E/alpha" },
- { 2, "A/B-copied/E/beta", "not-present", 1, "A/B/E/beta" },
+ { 2, "A/B-copied/E", "normal", 1, "A/B/E" },
+ { 2, "A/B-copied/E/alpha", "normal", 1, "A/B/E/alpha" },
+ { 2, "A/B-copied/E/beta", "normal", 1, "A/B/E/beta" },
+ { 3, "A/B-copied/E", "base-deleted", NO_COPY_FROM },
+ { 3, "A/B-copied/E/alpha", "base-deleted", NO_COPY_FROM },
+ { 3, "A/B-copied/E/beta", "base-deleted", NO_COPY_FROM },
{ 0 }
};
SVN_ERR(check_db_rows(&b, "A/B-copied/E", rows));
@@ -995,7 +1006,8 @@ test_delete_of_copies(const svn_test_opt
FALSE, TRUE, NULL, NULL, NULL, NULL, pool));
{
nodes_row_t rows[] = {
- { 3, "A/B-copied/E/F", "not-present", 1, "A/B/F" },
+ { 3, "A/B-copied/E/F", "normal", 1, "A/B/F" },
+ { 4, "A/B-copied/E/F", "base-deleted", NO_COPY_FROM },
{ 0 }
};
SVN_ERR(check_db_rows(&b, "A/B-copied/E/F", rows));
@@ -1750,49 +1762,195 @@ test_mixed_rev_copy(const svn_test_opts_
return SVN_NO_ERROR;
}
+static svn_error_t *
+test_delete_of_replace(const svn_test_opts_t *opts, apr_pool_t *pool)
+{
+ wc_baton_t b;
+
+ b.pool = pool;
+ SVN_ERR(svn_test__create_repos_and_wc(&b.repos_url, &b.wc_abspath,
+ "delete_of_replace", opts, pool));
+ SVN_ERR(svn_wc_context_create(&b.wc_ctx, NULL, pool, pool));
+ SVN_ERR(wc_mkdir(&b, "A"));
+ SVN_ERR(wc_mkdir(&b, "A/B"));
+ SVN_ERR(wc_mkdir(&b, "A/B/C"));
+ SVN_ERR(wc_mkdir(&b, "A/B/C/F"));
+ SVN_ERR(wc_mkdir(&b, "A/B/C/F/K"));
+ SVN_ERR(wc_mkdir(&b, "A/B/C/G"));
+ SVN_ERR(wc_mkdir(&b, "A/B/C/G/K"));
+ SVN_ERR(wc_commit(&b, ""));
+ SVN_ERR(wc_update(&b, "", 1));
+
+ SVN_ERR(wc_copy(&b, "A", "X"));
+ SVN_ERR(wc_move(&b, "X/B/C/F", "X/B/C/H"));
+ SVN_ERR(wc_commit(&b, ""));
+ SVN_ERR(wc_update(&b, "", 2));
+
+ SVN_ERR(wc_delete(&b, "A/B"));
+ SVN_ERR(wc_copy(&b, "X/B", "A/B"));
+ {
+ nodes_row_t rows[] = {
+ { 0, "A", "normal", 2, "A" },
+ { 0, "A/B", "normal", 2, "A/B" },
+ { 0, "A/B/C", "normal", 2, "A/B/C" },
+ { 0, "A/B/C/F", "normal", 2, "A/B/C/F" },
+ { 0, "A/B/C/F/K", "normal", 2, "A/B/C/F/K" },
+ { 0, "A/B/C/G", "normal", 2, "A/B/C/G" },
+ { 0, "A/B/C/G/K", "normal", 2, "A/B/C/G/K" },
+ { 2, "A/B", "normal", 2, "X/B" },
+ { 2, "A/B/C", "normal", 2, "X/B/C" },
+ { 2, "A/B/C/F", "base-deleted", NO_COPY_FROM },
+ { 2, "A/B/C/F/K", "base-deleted", NO_COPY_FROM },
+ { 2, "A/B/C/G", "normal", 2, "X/B/C/G" },
+ { 2, "A/B/C/G/K", "normal", 2, "X/B/C/G/K" },
+ { 2, "A/B/C/H", "normal", 2, "X/B/C/H" },
+ { 2, "A/B/C/H/K", "normal", 2, "X/B/C/H/K" },
+ { 0 }
+ };
+ SVN_ERR(check_db_rows(&b, "A", rows));
+ }
+
+ SVN_ERR(wc_delete(&b, "A/B"));
+ {
+ nodes_row_t rows[] = {
+ { 0, "A", "normal", 2, "A" },
+ { 0, "A/B", "normal", 2, "A/B" },
+ { 0, "A/B/C", "normal", 2, "A/B/C" },
+ { 0, "A/B/C/F", "normal", 2, "A/B/C/F" },
+ { 0, "A/B/C/F/K", "normal", 2, "A/B/C/F/K" },
+ { 0, "A/B/C/G", "normal", 2, "A/B/C/G" },
+ { 0, "A/B/C/G/K", "normal", 2, "A/B/C/G/K" },
+ { 2, "A/B", "base-deleted", NO_COPY_FROM },
+ { 2, "A/B/C", "base-deleted", NO_COPY_FROM },
+ { 2, "A/B/C/F", "base-deleted", NO_COPY_FROM },
+ { 2, "A/B/C/F/K", "base-deleted", NO_COPY_FROM },
+ { 2, "A/B/C/G", "base-deleted", NO_COPY_FROM },
+ { 2, "A/B/C/G/K", "base-deleted", NO_COPY_FROM },
+ { 0 }
+ };
+ SVN_ERR(check_db_rows(&b, "A", rows));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+static svn_error_t *
+test_del_replace_not_present(const svn_test_opts_t *opts, apr_pool_t *pool)
+{
+ wc_baton_t b;
+
+ b.pool = pool;
+ SVN_ERR(svn_test__create_repos_and_wc(&b.repos_url, &b.wc_abspath,
+ "del_replace_not_present", opts, pool));
+ SVN_ERR(svn_wc_context_create(&b.wc_ctx, NULL, pool, pool));
+ SVN_ERR(wc_mkdir(&b, "A"));
+ SVN_ERR(wc_mkdir(&b, "A/B"));
+ SVN_ERR(wc_mkdir(&b, "A/B/X"));
+ SVN_ERR(wc_mkdir(&b, "A/B/Y"));
+ SVN_ERR(wc_mkdir(&b, "A/B/Z"));
+ SVN_ERR(wc_commit(&b, ""));
+
+ SVN_ERR(wc_copy(&b, "A", "X"));
+ SVN_ERR(wc_mkdir(&b, "X/B/W"));
+ SVN_ERR(wc_commit(&b, ""));
+
+ SVN_ERR(wc_update(&b, "", 2));
+ SVN_ERR(wc_update(&b, "A/B/X", 0));
+ SVN_ERR(wc_update(&b, "A/B/Y", 0));
+ SVN_ERR(wc_update(&b, "X/B/W", 0));
+ SVN_ERR(wc_update(&b, "X/B/Y", 0));
+ SVN_ERR(wc_update(&b, "X/B/Z", 0));
+
+ SVN_ERR(wc_delete(&b, "A"));
+ {
+ nodes_row_t rows[] = {
+ { 0, "A", "normal", 2, "A" },
+ { 0, "A/B", "normal", 2, "A/B" },
+ { 0, "A/B/X", "not-present", 2, "A/B/X" },
+ { 0, "A/B/Y", "not-present", 2, "A/B/Y" },
+ { 0, "A/B/Z", "normal", 2, "A/B/Z" },
+ { 1, "A", "base-deleted", NO_COPY_FROM },
+ { 1, "A/B", "base-deleted", NO_COPY_FROM },
+ { 1, "A/B/Z", "base-deleted", NO_COPY_FROM },
+ { 0 }
+ };
+ SVN_ERR(check_db_rows(&b, "A", rows));
+ }
+
+ SVN_ERR(wc_copy(&b, "X", "A"));
+ {
+ nodes_row_t rows[] = {
+ { 0, "A", "normal", 2, "A" },
+ { 0, "A/B", "normal", 2, "A/B" },
+ { 0, "A/B/X", "not-present", 2, "A/B/X" },
+ { 0, "A/B/Y", "not-present", 2, "A/B/Y" },
+ { 0, "A/B/Z", "normal", 2, "A/B/Z" },
+ { 1, "A", "normal", 2, "X" },
+ { 1, "A/B", "normal", 2, "X/B" },
+ { 1, "A/B/W", "not-present", 2, "X/B/W" },
+ { 1, "A/B/X", "normal", 2, "X/B/X" },
+ { 1, "A/B/Y", "not-present", 2, "X/B/Y" },
+ { 1, "A/B/Z", "not-present", 2, "X/B/Z" },
+ { 0 }
+ };
+ SVN_ERR(check_db_rows(&b, "A", rows));
+ }
+
+ SVN_ERR(wc_delete(&b, "A"));
+ {
+ nodes_row_t rows[] = {
+ { 0, "A", "normal", 2, "A" },
+ { 0, "A/B", "normal", 2, "A/B" },
+ { 0, "A/B/X", "not-present", 2, "A/B/X" },
+ { 0, "A/B/Y", "not-present", 2, "A/B/Y" },
+ { 0, "A/B/Z", "normal", 2, "A/B/Z" },
+ { 1, "A", "base-deleted", NO_COPY_FROM },
+ { 1, "A/B", "base-deleted", NO_COPY_FROM },
+ { 1, "A/B/Z", "base-deleted", NO_COPY_FROM },
+ { 0 }
+ };
+ SVN_ERR(check_db_rows(&b, "A", rows));
+ }
+
+ return SVN_NO_ERROR;
+}
+
+
/* ---------------------------------------------------------------------- */
/* The list of test functions */
struct svn_test_descriptor_t test_funcs[] =
{
SVN_TEST_NULL,
- SVN_TEST_OPTS_WIMP(test_wc_wc_copies,
- "test_wc_wc_copies",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_reverts,
- "test_reverts",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_deletes,
- "test_deletes",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_delete_of_copies,
- "test_delete_of_copies",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_delete_with_base,
- "test_delete_with_base",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_adds,
- "test_adds",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_repo_wc_copies,
- "test_repo_wc_copies",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_delete_with_update,
- "test_delete_with_update",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_adds_change_kind,
- "test_adds_change_kind",
- "needs op_depth"),
+ SVN_TEST_OPTS_PASS(test_wc_wc_copies,
+ "test_wc_wc_copies"),
+ SVN_TEST_OPTS_PASS(test_reverts,
+ "test_reverts"),
+ SVN_TEST_OPTS_PASS(test_deletes,
+ "test_deletes"),
+ SVN_TEST_OPTS_PASS(test_delete_of_copies,
+ "test_delete_of_copies"),
+ SVN_TEST_OPTS_PASS(test_delete_with_base,
+ "test_delete_with_base"),
+ SVN_TEST_OPTS_PASS(test_adds,
+ "test_adds"),
+ SVN_TEST_OPTS_PASS(test_repo_wc_copies,
+ "test_repo_wc_copies"),
+ SVN_TEST_OPTS_PASS(test_delete_with_update,
+ "test_delete_with_update"),
+ SVN_TEST_OPTS_PASS(test_adds_change_kind,
+ "test_adds_change_kind"),
SVN_TEST_OPTS_PASS(test_base_dir_insert_remove,
"test_base_dir_insert_remove"),
- SVN_TEST_OPTS_WIMP(test_temp_op_make_copy,
- "test_temp_op_make_copy",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_wc_move,
- "test_wc_move",
- "needs op_depth"),
- SVN_TEST_OPTS_WIMP(test_mixed_rev_copy,
- "test_mixed_rev_copy",
- "needs op_depth"),
+ SVN_TEST_OPTS_PASS(test_temp_op_make_copy,
+ "test_temp_op_make_copy"),
+ SVN_TEST_OPTS_PASS(test_wc_move,
+ "test_wc_move"),
+ SVN_TEST_OPTS_PASS(test_mixed_rev_copy,
+ "test_mixed_rev_copy"),
+ SVN_TEST_OPTS_PASS(test_delete_of_replace,
+ "test_delete_of_replace"),
+ SVN_TEST_OPTS_PASS(test_del_replace_not_present,
+ "test_del_replace_not_present"),
SVN_TEST_NULL
};
Modified: subversion/branches/diff-optimizations-bytes/tools/dev/unix-build/Makefile.svn
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/tools/dev/unix-build/Makefile.svn?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/tools/dev/unix-build/Makefile.svn (original)
+++ subversion/branches/diff-optimizations-bytes/tools/dev/unix-build/Makefile.svn Sun Dec 12 16:43:42 2010
@@ -8,6 +8,7 @@ ENABLE_RUBY_BINDINGS ?= yes
ENABLE_PERL_BINDINGS ?= yes
ENABLE_JAVA_BINDINGS ?= no # they don't build with thread-less APR...
USE_APR_ICONV ?= no # set to yes to use APR iconv instead of GNU iconv
+PARALLEL ?= PARALLEL=1 CLEANUP=1
PWD = $(shell pwd)
UNAME = $(shell uname)
@@ -1068,64 +1069,32 @@ start-svnserve: $(SVN_OBJDIR)/.compiled
stop-svnserve:
$(SVNSERVE_STOP_CMD)
-# run tests in parallel
-PARALLEL=PARALLEL=1 CLEANUP=1
-TEST_LOGS=tests.log fails.log
+define do_check
+@-cd $(svn_builddir) && for fs in fsfs bdb; do \
+ echo "Begin test: $(subst svn-check-,,$@) x $$fs"; \
+ make check $(PARALLEL) $1 FS_TYPE=$$fs; \
+ for log in tests.log fails.log; do \
+ test -f $$log && mv -f $$log $$log.$@-$$fs; \
+ done; \
+done
+endef
svn-check-neon: httpd-conf $(SVN_OBJDIR)/.compiled $(SVN_OBJDIR)/.bindings-compiled
$(HTTPD_START_CMD)
- -cd $(svn_builddir) && make check FS_TYPE=fsfs \
- BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon \
- $(PARALLEL)
- -$(foreach log, $(TEST_LOGS), \
- test -f $(svn_builddir)/$(log) && cp -f $(svn_builddir)/$(log) \
- $(svn_builddir)/$(log).$@-fsfs;)
- -cd $(svn_builddir) && make check FS_TYPE=bdb \
- BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon \
- $(PARALLEL)
- -$(foreach log, $(TEST_LOGS), \
- test -f $(svn_builddir)/$(log) && cp -f $(svn_builddir)/$(log) \
- $(svn_builddir)/$(log).$@-bdb;)
+ $(call do_check,BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=neon)
$(HTTPD_STOP_CMD)
svn-check-serf: httpd-conf $(SVN_OBJDIR)/.compiled $(SVN_OBJDIR)/.bindings-compiled
$(HTTPD_START_CMD)
- -cd $(svn_builddir) && make check FS_TYPE=fsfs \
- BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=serf \
- $(PARALLEL)
- -$(foreach log, $(TEST_LOGS), \
- test -f $(svn_builddir)/$(log) && cp -f $(svn_builddir)/$(log) \
- $(svn_builddir)/$(log).$@-fsfs;)
- -cd $(svn_builddir) && make check FS_TYPE=bdb \
- BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=serf \
- $(PARALLEL)
- -$(foreach log, $(TEST_LOGS), \
- test -f $(svn_builddir)/$(log) && cp -f $(svn_builddir)/$(log) \
- $(svn_builddir)/$(log).$@-bdb;)
+ $(call do_check,BASE_URL=http://localhost:$(HTTPD_CHECK_PORT) HTTP_LIBRARY=serf)
$(HTTPD_STOP_CMD)
svn-check-local:
- -cd $(svn_builddir) && make check FS_TYPE=fsfs $(PARALLEL)
- -$(foreach log, $(TEST_LOGS), \
- test -f $(svn_builddir)/$(log) && cp -f $(svn_builddir)/$(log) \
- $(svn_builddir)/$(log).$@-fsfs;)
- -cd $(svn_builddir) && make check FS_TYPE=bdb $(PARALLEL)
- -$(foreach log, $(TEST_LOGS), \
- test -f $(svn_builddir)/$(log) && cp -f $(svn_builddir)/$(log) \
- $(svn_builddir)/$(log).$@-bdb;)
+ $(call do_check)
svn-check-svn:
$(SVNSERVE_START_CMD)
- -cd $(svn_builddir) && make check FS_TYPE=fsfs \
- BASE_URL=svn://127.0.0.1 $(PARALLEL)
- -$(foreach log, $(TEST_LOGS), \
- test -f $(svn_builddir)/$(log) && cp -f $(svn_builddir)/$(log) \
- $(svn_builddir)/$(log).$@-fsfs;)
- -cd $(svn_builddir) && make check FS_TYPE=bdb \
- BASE_URL=svn://127.0.0.1 $(PARALLEL)
- -$(foreach log, $(TEST_LOGS), \
- test -f $(svn_builddir)/$(log) && cp -f $(svn_builddir)/$(log) \
- $(svn_builddir)/$(log).$@-bdb;)
+ $(call do_check,BASE_URL=svn://127.0.0.1)
$(SVNSERVE_STOP_CMD)
.PHONY: svn-check-swig-pl svn-check-swig-py svn-check-swig-rb svn-check-javahl
Modified: subversion/branches/diff-optimizations-bytes/tools/dist/collect_sigs.py
URL: http://svn.apache.org/viewvc/subversion/branches/diff-optimizations-bytes/tools/dist/collect_sigs.py?rev=1044847&r1=1044846&r2=1044847&view=diff
==============================================================================
--- subversion/branches/diff-optimizations-bytes/tools/dist/collect_sigs.py (original)
+++ subversion/branches/diff-optimizations-bytes/tools/dist/collect_sigs.py Sun Dec 12 16:43:42 2010
@@ -28,6 +28,11 @@
# * Post to IRC when a new signature is collected
# - Since we don't want to have a long running bot, perhaps we could
# also patch wayita to accept and then echo a privmsg?
+# * Mail dev@ when somebody submits a successful signature, and include a
+# comments field which could be included in the mail.
+# * Use a subversion repository instead of sqlite backend
+# - no need to re-invent storage and retrieval
+# - perhaps we could re-use existing CIA/mailer hooks?
#
import sys, os