Author: danielsh
Date: Fri Jul 30 10:19:06 2010
New Revision: 980720
URL: http://svn.apache.org/viewvc?rev=980720&view=rev
Log:
On the 'atomic-revprop' branch:
Support --server-minor-version in the unit test.
* subversion/tests/cmdline/atomic-ra-revprop-change.c
(change_rev_prop):
Check if the server supports the SVN_RA_CAPABILITY_ATOMIC_REVPROPS
capability before using it, and raise an appropriate error if it doesn't.
* subversion/tests/cmdline/prop_tests.py (atomic_over_ra):
(expect_old_server_fail):
New helper.
(FAILS_WITH_BPV, PASSES_WITHOUT_BPV):
Use expect_old_server_fail() when applicable.
* subversion/tests/cmdline/svntest/main.py
(server_has_atomic_revprop): New.
Modified:
subversion/branches/atomic-revprop/subversion/tests/cmdline/atomic-ra-revprop-change.c
subversion/branches/atomic-revprop/subversion/tests/cmdline/prop_tests.py
subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/main.py
Modified:
subversion/branches/atomic-revprop/subversion/tests/cmdline/atomic-ra-revprop-change.c
URL:
http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/tests/cmdline/atomic-ra-revprop-change.c?rev=980720&r1=980719&r2=980720&view=diff
==============================================================================
---
subversion/branches/atomic-revprop/subversion/tests/cmdline/atomic-ra-revprop-change.c
(original)
+++
subversion/branches/atomic-revprop/subversion/tests/cmdline/atomic-ra-revprop-change.c
Fri Jul 30 10:19:06 2010
@@ -139,6 +139,7 @@ change_rev_prop(const char *url,
svn_ra_callbacks2_t *callbacks;
svn_ra_session_t *sess;
apr_hash_t *config;
+ svn_boolean_t capable;
SVN_ERR(svn_ra_create_callbacks(&callbacks, pool));
SVN_ERR(construct_auth_baton(&callbacks->auth_baton, pool));
@@ -147,8 +148,17 @@ change_rev_prop(const char *url,
SVN_ERR(svn_ra_open3(&sess, url, NULL, callbacks, NULL /* baton */,
config, pool));
- SVN_ERR(svn_ra_change_rev_prop2(sess, revision, propname,
- &old_value, propval, pool));
+ SVN_ERR(svn_ra_has_capability(sess, &capable,
+ SVN_RA_CAPABILITY_ATOMIC_REVPROPS,
+ pool));
+ if (capable)
+ SVN_ERR(svn_ra_change_rev_prop2(sess, revision, propname,
+ &old_value, propval, pool));
+ else
+ /* Running under --server-minor-version? */
+ return svn_error_create(SVN_ERR_TEST_FAILED, NULL,
+ "Server doesn't advertise "
+ "SVN_RA_CAPABILITY_ATOMIC_REVPROPS");
return SVN_NO_ERROR;
}
Modified:
subversion/branches/atomic-revprop/subversion/tests/cmdline/prop_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/tests/cmdline/prop_tests.py?rev=980720&r1=980719&r2=980720&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/tests/cmdline/prop_tests.py
(original)
+++ subversion/branches/atomic-revprop/subversion/tests/cmdline/prop_tests.py
Fri Jul 30 10:19:06 2010
@@ -1987,19 +1987,37 @@ def atomic_over_ra(sbox):
svntest.actions.enable_revprop_changes(sbox.repo_dir)
svntest.actions.run_and_verify_svn(None, None, [],
'propset', '--revprop', '-r', '0',
- 'flower', 'violet', repo_url)
+ 'flower', s1, repo_url)
# Helpers.
- def FAILS_WITH_BPV(not_the_old_value, proposed_value):
- expected_stderr = ".*revprop 'flower' has unexpected value.*"
+
+ def expect_old_server_fail(old_value, proposed_value):
+ # We are setting a (possibly "not present") expectation for the old value,
+ # so we should fail.
+ expected_stderr = ".*doesn't advertise.*ATOMIC_REVPROP"
svntest.actions.run_and_verify_atomic_ra_revprop_change(
None, None, expected_stderr, 1, repo_url, 0, 'flower',
- not_the_old_value, proposed_value)
+ old_value, proposed_value)
+
+ # The original value is still there.
+ svntest.actions.check_prop('flower', repo_url, [s1], 0)
+
+ def FAILS_WITH_BPV(not_the_old_value, proposed_value):
+ if svntest.main.server_has_atomic_revprop():
+ expected_stderr = ".*revprop 'flower' has unexpected value.*"
+ svntest.actions.run_and_verify_atomic_ra_revprop_change(
+ None, None, expected_stderr, 1, repo_url, 0, 'flower',
+ not_the_old_value, proposed_value)
+ else:
+ expect_old_server_fail(not_the_old_value, proposed_value)
def PASSES_WITHOUT_BPV(yes_the_old_value, proposed_value):
- svntest.actions.run_and_verify_atomic_ra_revprop_change(
- None, None, [], 0, repo_url, 0, 'flower',
- yes_the_old_value, proposed_value)
+ if svntest.main.server_has_atomic_revprop():
+ svntest.actions.run_and_verify_atomic_ra_revprop_change(
+ None, None, [], 0, repo_url, 0, 'flower',
+ yes_the_old_value, proposed_value)
+ else:
+ expect_old_server_fail(yes_the_old_value, proposed_value)
# Value of "flower" is 's1'.
FAILS_WITH_BPV(s2, s1)
Modified:
subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/main.py
URL:
http://svn.apache.org/viewvc/subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/main.py?rev=980720&r1=980719&r2=980720&view=diff
==============================================================================
--- subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/main.py
(original)
+++ subversion/branches/atomic-revprop/subversion/tests/cmdline/svntest/main.py
Fri Jul 30 10:19:06 2010
@@ -1085,6 +1085,9 @@ def server_has_partial_replay():
def server_enforces_date_syntax():
return options.server_minor_version >= 5
+def server_has_atomic_revprop():
+ return options.server_minor_version >= 7
+
######################################################################