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
+
 ######################################################################
 
 


Reply via email to