Author: julianfoad
Date: Mon Apr 27 08:44:54 2015
New Revision: 1676221

URL: http://svn.apache.org/r1676221
Log:
On the 'move-tracking-2' branch: catch up to trunk@1676219.

Modified:
    subversion/branches/move-tracking-2/   (props changed)
    subversion/branches/move-tracking-2/CHANGES   (contents, props changed)
    subversion/branches/move-tracking-2/build/   (props changed)
    subversion/branches/move-tracking-2/build/ac-macros/java.m4
    subversion/branches/move-tracking-2/build/ac-macros/swig.m4
    subversion/branches/move-tracking-2/build/generator/gen_win_dependencies.py
    subversion/branches/move-tracking-2/build/run_tests.py
    subversion/branches/move-tracking-2/subversion/   (props changed)
    
subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
    
subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
    subversion/branches/move-tracking-2/subversion/bindings/swig/INSTALL
    subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/transaction.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/config_win.c
    
subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/cache-test.c
    subversion/branches/move-tracking-2/subversion/tests/svn_test.h
    subversion/branches/move-tracking-2/subversion/tests/svn_test_main.c
    subversion/branches/move-tracking-2/win-tests.py   (contents, props changed)

Propchange: subversion/branches/move-tracking-2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 27 08:44:54 2015
@@ -88,4 +88,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1606692-1674752
+/subversion/trunk:1606692-1676219

Modified: subversion/branches/move-tracking-2/CHANGES
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/CHANGES?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/CHANGES (original)
+++ subversion/branches/move-tracking-2/CHANGES Mon Apr 27 08:44:54 2015
@@ -189,6 +189,9 @@ http://svn.apache.org/repos/asf/subversi
       unversioned obstructions (r1659381)
     * windows: improve checkout performance on windows by using sqlite truncate
       journal mode rather than delete (r1659426)
+    * status: now accept '-r' argument (r1671164, 1672578, 1673228)
+    * ls: improve performance of '-v' on tag directories (r1673153)
+    * resolve: improve conflict prompts for binary files (r1667228 et al)
 
   - Client-side bugfixes:
     * export: fix problem exporting symlinks on windows (r1476093)
@@ -298,6 +301,12 @@ http://svn.apache.org/repos/asf/subversi
     * info: provide results in a stable order (r1662030)
     * revert: allow depth limited reverts of nodes that only have not-present
       and/or excluded child nodes (r1662091)
+    * wc: fix calculating repo path after commits of nodes that shadow a
+      switched (not-present) node (r1663991, r1666258, r1674032)
+    * update: resolve assertion on bad update report involving incomplete
+      status (r1663671, r1666832)
+    * update: allow a real file to replace a file external (r1664035)
+    * merge: raise a tree conflict on root of obstructing dir (r1666690)
 
   - Server-side bugfixes:
     * svnserve: don't ignore socket initialization errors (r1544253)
@@ -372,6 +381,15 @@ http://svn.apache.org/repos/asf/subversi
     * fsfs: fix pool lifetime issue in lock handling (r1659314)
     * mod_dav_svn: properly log assertions and malfuctions (r1660480)
     * svnadmin load/dump: preserve deletion of svn:date from r0 (issue #4563)
+    * svnrdump: don't provide HEAD+1 as base revision when loading deletes
+      (r1664684)
+    * mod_dav_svn: improve error message sent with a 405 status code
+      (r1665195, r1666096, r1666379)
+    * make detection of invalid base revision on commit behave the same on
+      all RA layers (r1664664, r1664672, r1664674)
+    * mod_dav_svn: emit the first few log items as soon as they are available
+      (r1666965, r1667120)
+    * mod_dav_svn: prevent a tree walk on copy sources (issue #4351)
 
   - Client-side and server-side bugfixes:
     * use less memory when retrieving extension from filename (r1548480)
@@ -424,6 +442,7 @@ http://svn.apache.org/repos/asf/subversi
     * bash_completion: add '--pin-externals' (r1662250)
     * bash_completion: stop offering deprecated options (r1662291)
     * bash_completion: add '--show-item' and '--no-newline' (r1662622)
+    * svnbench: add null-blame command (r1673785, r1673803, r1674015)
 
  Developer-visible changes:
   - General:
@@ -495,6 +514,11 @@ http://svn.apache.org/repos/asf/subversi
     * fix bugs and performance issues using svn_wc_walk_entries3() (r1661110)
     * support using Python 3 for building (r1661247)
     * don't add -lstdc++ on FreeBSD 10 (r1662329)
+    * add build support for Visual Studio 2015 (r1663183, r1663184)
+    * fix test failures when running from a directory whose name contains
+      characters that must be escaped when used in a URL. (r1664997)
+    * fix breakage of the serf ra session with svn_ra_get_dir2() and
+      svn_ra_get_log2().  (r1665213, r1665259, r1665609)
 
   - API changes:
     * new RA callbacks for managing ra_svn tunnels:
@@ -533,8 +557,8 @@ http://svn.apache.org/repos/asf/subversi
     * svn_auth_first_credentials(): provides an error rather than crashing if
       auth_baton is NULL (r1544320)
     * svn_auth_set_parameter(): Do nothing if auth_baton is NULL (r1544320)
-    * new API svn_relpath_limit which returns a relpath with a maximum number
-      of path components (r1545123)
+    * new API svn_relpath_prefix which returns a relpath with a maximum number
+      of path components (r1545123, r1673282)
     * svn_fs_initialize() is now threadsafe (r1546409)
     * svn_checksum_kind_t has two new FNV-1a checksums (r1546699)
     * svn_fs_lock: control characters are not allowed in lock tokens (r1547445)
@@ -620,6 +644,7 @@ http://svn.apache.org/repos/asf/subversi
     * svn_string_dup() will accept a NULL pointer and return a NULL (r1657254)
     * svn_ra_get_file_revs2() now handles SVN_INVALID_REVNUM as HEAD (r1660463)
     * new API svn_error_quick_wrapf() (r1662668)
+    * new API svn_fs_node_has_props() (r1673170, r1673172, r1673692, r1673746)
 
   - Bindings:
     * javahl: add support for the RA layer (r1494650 et al)
@@ -690,6 +715,9 @@ http://svn.apache.org/repos/asf/subversi
     * swig-py: add support for svn_fs_lock_many(), svn_fs_unlock_many(),
       svn_repos_fs_lock_many() and svn_repos_fs_unlock_many() (r1662867)
     * swig-py: fix support for svn_ra_lock() and svn_ra_unlock() (r1662891)
+    * javahl: allow java callbacks to throw errors back to the svn code
+      (r1664938, r1664939, r1664940, r1664978, r1664984)
+    * swig-pl: fix some statck memory problems (r1668618, 1671388)
 
 
 Version 1.8.13

Propchange: subversion/branches/move-tracking-2/CHANGES
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 27 08:44:54 2015
@@ -86,4 +86,4 @@
 /subversion/branches/verify-at-commit/CHANGES:1462039-1462408
 /subversion/branches/verify-keep-going/CHANGES:1439280-1546110
 /subversion/branches/wc-collate-path/CHANGES:1402685-1480384
-/subversion/trunk/CHANGES:1606692-1668666
+/subversion/trunk/CHANGES:1606692-1676219

Propchange: subversion/branches/move-tracking-2/build/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 27 08:44:54 2015
@@ -82,4 +82,4 @@
 /subversion/branches/verify-at-commit/build:1462039-1462408
 /subversion/branches/verify-keep-going/build:1439280-1546110
 /subversion/branches/wc-collate-path/build:1402685-1480384
-/subversion/trunk/build:1606692-1674752
+/subversion/trunk/build:1606692-1676219

Modified: subversion/branches/move-tracking-2/build/ac-macros/java.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/ac-macros/java.m4?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/ac-macros/java.m4 (original)
+++ subversion/branches/move-tracking-2/build/ac-macros/java.m4 Mon Apr 27 
08:44:54 2015
@@ -62,10 +62,13 @@ AC_DEFUN(SVN_FIND_JDK,
   JDK_SUITABLE=no
   AC_MSG_CHECKING([for JDK])
   if test $where = check; then
-    dnl Prefer /Library/Java/Home first to try to be nice on Darwin.
-    dnl We'll correct later if we get caught in the tangled web of JAVA_HOME.
+    dnl Prefer /usr/libexec/java_home, then /Library/Java/Home first
+    dnl to try to be nice on Darwin.  We'll correct later if we get
+    dnl caught in the tangled web of JAVA_HOME.
     if test -x "$JAVA_HOME/bin/java"; then
       JDK="$JAVA_HOME"
+    elif test -x "/usr/libexec/java_home"; then
+      JDK=`/usr/libexec/java_home`
     elif test -x "/Library/Java/Home/bin/java"; then
       JDK="/Library/Java/Home"
     elif test -x "/usr/bin/java"; then

Modified: subversion/branches/move-tracking-2/build/ac-macros/swig.m4
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/ac-macros/swig.m4?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/ac-macros/swig.m4 (original)
+++ subversion/branches/move-tracking-2/build/ac-macros/swig.m4 Mon Apr 27 
08:44:54 2015
@@ -88,10 +88,6 @@ AC_DEFUN(SVN_FIND_SWIG,
     AC_MSG_RESULT([$SWIG_VERSION_RAW])
     # If you change the required swig version number, don't forget to update:
     #   subversion/bindings/swig/INSTALL
-    #   packages/rpm/redhat-8+/subversion.spec
-    #   packages/rpm/redhat-7.x/subversion.spec
-    #   packages/rpm/rhel-3/subversion.spec
-    #   packages/rpm/rhel-4/subversion.spec
     if test -n "$SWIG_VERSION" && test "$SWIG_VERSION" -ge "103024" && \
        test "$SWIG_VERSION" -lt "300000"; then
       SWIG_SUITABLE=yes

Modified: 
subversion/branches/move-tracking-2/build/generator/gen_win_dependencies.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/generator/gen_win_dependencies.py?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/generator/gen_win_dependencies.py 
(original)
+++ subversion/branches/move-tracking-2/build/generator/gen_win_dependencies.py 
Mon Apr 27 08:44:54 2015
@@ -530,7 +530,7 @@ class GenDependenciesBase(gen_base.Gener
     if version >= (1, 3, 0) :
       self._libraries['apr_memcache'] = SVNCommonLibrary(
                                           'apr_memcache', inc_path, lib_dir,
-                                          lib_name, aprutil_version,
+                                          None, aprutil_version,
                                           defines=['SVN_HAVE_MEMCACHE'])
 
     # And now find expat

Modified: subversion/branches/move-tracking-2/build/run_tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/run_tests.py?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/run_tests.py (original)
+++ subversion/branches/move-tracking-2/build/run_tests.py Mon Apr 27 08:44:54 
2015
@@ -386,6 +386,8 @@ class TestHarness:
                '--srcdir=' + os.path.join(self.srcdir, progdir)]
     if self.config_file is not None:
       cmdline.append('--config-file=' + self.config_file)
+    elif self.memcached_server is not None:
+      cmdline.append('--memcached-server=' + self.memcached_server)
 
     if self.base_url is not None:
       subdir = 'subversion/tests/cmdline/svn-test-work'

Propchange: subversion/branches/move-tracking-2/subversion/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 27 08:44:54 2015
@@ -82,4 +82,4 @@
 /subversion/branches/verify-at-commit/subversion:1462039-1462408
 /subversion/branches/verify-keep-going/subversion:1439280-1546110
 /subversion/branches/wc-collate-path/subversion:1402685-1480384
-/subversion/trunk/subversion:1606692-1674752
+/subversion/trunk/subversion:1606692-1676219

Modified: 
subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
 (original)
+++ 
subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNEditor.java
 Mon Apr 27 08:44:54 2015
@@ -94,7 +94,9 @@ public interface ISVNEditor
      * <code>replacesRevision</code> set accordingly <em>must</em> be used.
      * <p>
      * <b>Note:</b> The <code>contents</code> stream's lifetime must not
-     *      extend beyond the scope of this function.
+     *      extend beyond the scope of this function. An
+     *      implementation <b>must</b> close the stream after
+     *      consuming its contents.
      *
      * @throws ClientException
      */
@@ -193,7 +195,9 @@ public interface ISVNEditor
      * #addFile().
      * <p>
      * <b>Note:</b> The <code>contents</code> stream's lifetime must not
-     *      extend beyond the scope of this function.
+     *      extend beyond the scope of this function. An
+     *      implementation <b>must</b> close the stream after
+     *      consuming its contents.
      *
      * @throws ClientException
      */

Modified: 
subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
 (original)
+++ 
subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/StatusEditor.java
 Mon Apr 27 08:44:54 2015
@@ -33,6 +33,7 @@ import java.util.GregorianCalendar;
 import java.util.Locale;
 import java.util.SimpleTimeZone;
 import java.io.InputStream;
+import java.io.IOException;
 import java.nio.charset.Charset;
 
 /**
@@ -78,6 +79,12 @@ class StatusEditor implements ISVNEditor
                         long replacesRevision)
     {
         //DEBUG:System.err.println("  [J] StatusEditor.addFile");
+        try {
+            contents.close();
+        } catch (IOException ex) {
+            throw new RuntimeException(ex);
+        }
+
         checkState();
         receiver.addedFile(relativePath);
     }
@@ -120,6 +127,12 @@ class StatusEditor implements ISVNEditor
                           Map<String, byte[]> properties)
     {
         //DEBUG:System.err.println("  [J] StatusEditor.alterFile");
+        try {
+            contents.close();
+        } catch (IOException ex) {
+            throw new RuntimeException(ex);
+        }
+
         checkState();
         receiver.modifiedFile(relativePath,
                               (checksum != null && contents != null),

Modified: subversion/branches/move-tracking-2/subversion/bindings/swig/INSTALL
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/swig/INSTALL?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/swig/INSTALL 
(original)
+++ subversion/branches/move-tracking-2/subversion/bindings/swig/INSTALL Mon 
Apr 27 08:44:54 2015
@@ -65,7 +65,7 @@ BUILDING SWIG BINDINGS FOR SVN ON UNIX
 
 
 Step 1:  Install a suitable version of SWIG (which is
-         currently SWIG version 1.3.24 or later).
+         currently SWIG version 1.3.24 or later, but not SWIG 3.0.0 or newer).
 
     * Perhaps your distribution packages a suitable version - if it does
       install it, and skip to the last bullet point in this section.

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/transaction.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/transaction.c?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/transaction.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_fs_fs/transaction.c 
Mon Apr 27 08:44:54 2015
@@ -2231,9 +2231,11 @@ get_shared_rep(representation_t **old_re
                               "You should delete the rep-cache.db and "
                               "verify the repository. The cached rep will "
                               "not be shared.",
-                              apr_psprintf(scratch_pool, "%" APR_OFF_T_FMT,
+                              apr_psprintf(scratch_pool,
+                                           "%" SVN_FILESIZE_T_FMT,
                                            rep->expanded_size),
-                              apr_psprintf(scratch_pool, "%" APR_OFF_T_FMT,
+                              apr_psprintf(scratch_pool,
+                                           "%" SVN_FILESIZE_T_FMT,
                                            (*old_rep)->expanded_size),
                               svn_checksum_to_cstring_display(&checksum,
                                                               scratch_pool));

Modified: 
subversion/branches/move-tracking-2/subversion/libsvn_subr/config_win.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_subr/config_win.c?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_subr/config_win.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_subr/config_win.c Mon 
Apr 27 08:44:54 2015
@@ -201,10 +201,14 @@ svn_config__parse_registry(svn_config_t
       svn_boolean_t is_enoent = APR_STATUS_IS_ENOENT(apr_err)
                                 || (err == ERROR_INVALID_HANDLE);
 
-      if (must_exist || !is_enoent)
+      if (!is_enoent)
         return svn_error_createf(SVN_ERR_BAD_FILENAME,
-                                 is_enoent ? NULL
-                                           : svn_error_wrap_apr(apr_err, NULL),
+                                 svn_error_wrap_apr(apr_err, NULL),
+                                 _("Can't open registry key '%s'"),
+                                 svn_dirent_local_style(file, pool));
+      else if (must_exist)
+        return svn_error_createf(SVN_ERR_BAD_FILENAME,
+                                 NULL,
                                  _("Can't open registry key '%s'"),
                                  svn_dirent_local_style(file, pool));
       else

Modified: 
subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/cache-test.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/cache-test.c?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- 
subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/cache-test.c 
(original)
+++ 
subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/cache-test.c 
Mon Apr 27 08:44:54 2015
@@ -34,6 +34,39 @@
 
 #include "../svn_test.h"
 
+/* Create memcached cache if configured */
+static svn_error_t *
+create_memcache(svn_memcache_t **memcache,
+                const svn_test_opts_t *opts,
+                apr_pool_t *result_pool,
+                apr_pool_t *scratch_pool)
+{
+  svn_config_t *config = NULL;
+  if (opts->config_file)
+    {
+      SVN_ERR(svn_config_read3(&config, opts->config_file,
+                               TRUE, FALSE, FALSE, scratch_pool));
+    }
+  else if (opts->memcached_server)
+    {
+      SVN_ERR(svn_config_create2(&config, FALSE, FALSE, scratch_pool));
+
+      svn_config_set(config, SVN_CACHE_CONFIG_CATEGORY_MEMCACHED_SERVERS,
+                     "key" /* some value; ignored*/,
+                     opts->memcached_server);
+    }
+
+  if (config)
+    {
+      SVN_ERR(svn_cache__make_memcache_from_config(memcache, config,
+                                                   result_pool, scratch_pool));
+    }
+  else
+    *memcache = NULL;
+
+  return SVN_NO_ERROR;
+}
+
 /* Implements svn_cache__serialize_func_t */
 static svn_error_t *
 serialize_revnum(void **data,
@@ -147,20 +180,12 @@ test_memcache_basic(const svn_test_opts_
                     apr_pool_t *pool)
 {
   svn_cache__t *cache;
-  svn_config_t *config;
   svn_memcache_t *memcache = NULL;
   const char *prefix = apr_psprintf(pool,
                                     "test_memcache_basic-%" APR_TIME_T_FMT,
                                     apr_time_now());
 
-  if (opts->config_file)
-    {
-      SVN_ERR(svn_config_read3(&config, opts->config_file,
-                               TRUE, FALSE, FALSE, pool));
-      SVN_ERR(svn_cache__make_memcache_from_config(&memcache, config,
-                                                   pool, pool));
-    }
-
+  SVN_ERR(create_memcache(&memcache, opts, pool, pool));
   if (! memcache)
     return svn_error_create(SVN_ERR_TEST_SKIPPED, NULL,
                             "not configured to use memcached");
@@ -303,7 +328,6 @@ test_memcache_long_key(const svn_test_op
                        apr_pool_t *pool)
 {
   svn_cache__t *cache;
-  svn_config_t *config;
   svn_memcache_t *memcache = NULL;
   svn_revnum_t fifty = 50, *answer;
   svn_boolean_t found = FALSE;
@@ -319,13 +343,7 @@ test_memcache_long_key(const svn_test_op
     "0123456789" "0123456789" "0123456789" "0123456789" "0123456789" /* 300 */
     ;
 
-  if (opts->config_file)
-    {
-      SVN_ERR(svn_config_read3(&config, opts->config_file,
-                               TRUE, FALSE, FALSE, pool));
-      SVN_ERR(svn_cache__make_memcache_from_config(&memcache, config,
-                                                   pool, pool));
-    }
+  SVN_ERR(create_memcache(&memcache, opts, pool, pool));
 
   if (! memcache)
     return svn_error_create(SVN_ERR_TEST_SKIPPED, NULL,

Modified: subversion/branches/move-tracking-2/subversion/tests/svn_test.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/tests/svn_test.h?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/tests/svn_test.h (original)
+++ subversion/branches/move-tracking-2/subversion/tests/svn_test.h Mon Apr 27 
08:44:54 2015
@@ -149,6 +149,8 @@ typedef struct svn_test_opts_t
   const char *repos_dir;
   /* Repository url: The url to access REPOS_DIR as */
   const char *repos_url;
+  /* Memcached server. */
+  const char *memcached_server;
   /* Repository template: pre-created repository to copy for tests */
   const char *repos_template;
   /* Minor version to use for servers and FS backends, or zero to use

Modified: subversion/branches/move-tracking-2/subversion/tests/svn_test_main.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/tests/svn_test_main.c?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/tests/svn_test_main.c 
(original)
+++ subversion/branches/move-tracking-2/subversion/tests/svn_test_main.c Mon 
Apr 27 08:44:54 2015
@@ -104,6 +104,7 @@ enum test_options_e {
   reposdir_opt,
   reposurl_opt,
   repostemplate_opt,
+  memcached_server_opt,
   mode_filter_opt,
   sqlite_log_opt,
   parallel_opt,
@@ -144,6 +145,8 @@ static const apr_getopt_option_t cl_opti
                     N_("the url to access reposdir as")},
   {"repos-template",repostemplate_opt, 1,
                     N_("the repository to use as template")},
+  {"memcached-server", memcached_server_opt, 1,
+                    N_("the memcached server to use")},
   {"sqlite-logging", sqlite_log_opt, 0,
                     N_("enable SQLite logging")},
   {"parallel",      parallel_opt, 0,
@@ -915,6 +918,10 @@ svn_test_main(int argc, const char *argv
           opts.repos_template = svn_dirent_internal_style(opts.repos_template,
                                                           pool);
           break;
+        case memcached_server_opt:
+          SVN_INT_ERR(svn_utf_cstring_to_utf8(&opts.memcached_server, opt_arg,
+                                              pool));
+          break;
         case list_opt:
           list_mode = TRUE;
           break;

Modified: subversion/branches/move-tracking-2/win-tests.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/win-tests.py?rev=1676221&r1=1676220&r2=1676221&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/win-tests.py (original)
+++ subversion/branches/move-tracking-2/win-tests.py Mon Apr 27 08:44:54 2015
@@ -83,6 +83,13 @@ def _usage_exit():
   print("  --disable-http-v2      : Do not advertise support for HTTPv2 on 
server")
   print("  --disable-bulk-updates : Disable bulk updates on HTTP server")
   print("  --ssl-cert             : Path to SSL server certificate to trust.")
+  print("  --exclusive-wc-locks   : Enable exclusive working copy locks")
+  print("  --memcached-dir=DIR    : Run memcached from dir")
+  print("  --memcached-server=    : Enable usage of the specified memcached 
server")
+  print("              <url:port>")
+  print("  --skip-c-tests         : Skip all C tests")
+  print("  --dump-load-cross-check: Run the dump load cross check after every 
test")
+
   print("  --javahl               : Run the javahl tests instead of the normal 
tests")
   print("  --swig=language        : Run the swig perl/python/ruby tests 
instead of")
   print("                           the normal tests")
@@ -127,7 +134,9 @@ opts, args = my_getopt(sys.argv[1:], 'hr
                         'list', 'enable-sasl', 'bin=', 'parallel',
                         'config-file=', 'server-minor-version=', 'log-level=',
                         'log-to-stdout', 'mode-filter=', 'milestone-filter=',
-                        'ssl-cert='])
+                        'ssl-cert=', 'exclusive-wc-locks', 'memcached-server=',
+                        'skip-c-tests', 'dump-load-cross-check', 
'memcached-dir=',
+                        ])
 if len(args) > 1:
   print('Warning: non-option arguments after the first one will be ignored')
 
@@ -162,6 +171,12 @@ mode_filter=None
 tests_to_run = []
 log_level = None
 ssl_cert = None
+exclusive_wc_locks = None
+run_memcached = None
+memcached_server = None
+memcached_dir = None
+skip_c_tests = None
+dump_load_cross_check = None
 
 for opt, val in opts:
   if opt in ('-h', '--help'):
@@ -238,6 +253,17 @@ for opt, val in opts:
     log_level = val
   elif opt == '--ssl-cert':
     ssl_cert = val
+  elif opt == '--exclusive-wc-locks':
+    exclusive_wc_locks = 1
+  elif opt == '--memcached-server':
+    memcached_server = val
+  elif opt == '--skip-c-tests':
+    skip_c_tests = 1
+  elif opt == '--dump-load-cross-check':
+    dump_load_cross_check = 1
+  elif opt == '--memcached-dir':
+    memcached_dir = val
+    run_memcached = 1
 
 # Calculate the source and test directory names
 abs_srcdir = os.path.abspath("")
@@ -678,6 +704,45 @@ class Httpd:
         pass
     print('Httpd.stop_daemon not implemented')
 
+class Memcached:
+  "Run memcached for tests"
+  def __init__(self, abs_memcached_dir, memcached_server):
+    self.name = 'memcached.exe'
+
+    self.memcached_host, self.memcached_port = memcached_server.split(':')
+    self.memcached_dir = abs_memcached_dir
+
+    self.proc = None
+    self.path = os.path.join(self.memcached_dir, self.name)
+
+    self.memcached_args = [
+                            self.name,
+                            '-p', self.memcached_port,
+                            '-l', self.memcached_host
+                          ]
+
+  def __del__(self):
+    "Stop memcached when the object is deleted"
+    self.stop()
+
+  def start(self):
+    "Start memcached as daemon"
+    print('Starting %s as daemon' % self.name)
+    print(self.memcached_args)
+    self.proc = subprocess.Popen([self.path] + self.memcached_args)
+
+  def stop(self):
+    "Stop memcached"
+    if self.proc is not None:
+      try:
+        print('Stopping %s' % self.name)
+        self.proc.poll();
+        if self.proc.returncode is None:
+          self.proc.kill();
+        return
+      except AttributeError:
+        pass
+
 # Move the binaries to the test directory
 create_target_dir(abs_builddir)
 locate_libs()
@@ -698,10 +763,15 @@ create_target_dir(CMDLINE_TEST_SCRIPT_NA
 abs_builddir = fix_case(abs_builddir)
 
 daemon = None
+memcached = None
 # Run the tests
 
 # No need to start any servers if we are only listing the tests.
 if not list_tests:
+  if run_memcached:
+    memcached = Memcached(memcached_dir, memcached_server)
+    memcached.start()
+
   if run_svnserve:
     daemon = Svnserve(svnserve_args, objdir, abs_objdir, abs_builddir)
 
@@ -765,7 +835,11 @@ if not test_javahl and not test_swig:
                              fsfs_sharding, fsfs_packing,
                              list_tests, svn_bin, mode_filter,
                              milestone_filter,
-                             set_log_level=log_level, ssl_cert=ssl_cert)
+                             set_log_level=log_level, ssl_cert=ssl_cert,
+                             exclusive_wc_locks=exclusive_wc_locks,
+                             memcached_server=memcached_server,
+                             skip_c_tests=skip_c_tests,
+                             dump_load_cross_check=dump_load_cross_check)
   old_cwd = os.getcwd()
   try:
     os.chdir(abs_builddir)
@@ -985,6 +1059,9 @@ elif test_swig == 'ruby':
 if daemon:
   del daemon
 
+if memcached:
+  del memcached
+
 # Remove the execs again
 for tgt in copied_execs:
   try:

Propchange: subversion/branches/move-tracking-2/win-tests.py
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 27 08:44:54 2015
@@ -86,4 +86,4 @@
 /subversion/branches/verify-at-commit/win-tests.py:1462039-1462408
 /subversion/branches/verify-keep-going/win-tests.py:1439280-1546110
 /subversion/branches/wc-collate-path/win-tests.py:1402685-1480384
-/subversion/trunk/win-tests.py:1606692-1674752
+/subversion/trunk/win-tests.py:1606692-1676219


Reply via email to