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