Hi, the attached patch is the outcome of talking with jcorval on IRC about a test suite issue on Windows (release builds) in SVN 1.8. It resolves the fact that the tests will be interrupted on Windows by a Windows popup upon an abort()-call.
Atm this is triggered for the 1.8 test suite for the move-test (no 8) which is marked as XFail and triggers an SVN_ERR_ASSERT() and therefore breaks fully automated tests. The chosen solution is based on an old discussion in 2011 which triggered the case in a different (older) test: http://svn.haxx.se/dev/archive-2011-01/0328.shtml http://svn.haxx.se/dev/archive-2011-02/0011.shtml The proposed patch introduces a new environment variable (SVN_CMDLINE_DISABLE_WATSON_ON_ABORT) and if set, disables the Windows' Watson crash reporting upon an abort-call. More details available here: http://www.luke1410.de:8090/browse/MAXSVN-66 The patch was checked against trunk and 1.8.16 (running the whole test suite (Win10 (1511) 64-bit x ra_local x fsfs)). [[[ Resolve testsuite interruption on Windows in release mode, if a test triggers an abort. * subversion/libsvn_subr/cmdline.c (svn_cmdline_init): check against the new SVN_CMDLINE_DISABLE_WATSON_ON_ABORT environment variable and disable Watson crash dumps in this case * subversion/tests/svn_test_main.c (svn_test_main): the same * win-tests.py (): define the SVN_CMDLINE_DISABLE_WATSON_ON_ABORT environment variable when running the test suite ]]] Regards, Stefan
Index: subversion/libsvn_subr/cmdline.c
===================================================================
--- subversion/libsvn_subr/cmdline.c (revision 1755433)
+++ subversion/libsvn_subr/cmdline.c (working copy)
@@ -162,6 +162,10 @@
{
/* In release mode: Redirect abort() errors to stderr */
_set_error_mode(_OUT_TO_STDERR);
+ /* Allow scripts (e.g. our testsuite) to prevent creating a Watson crash
+ dump and also do not bring up the report dialog. */
+ if (getenv("SVN_CMDLINE_DISABLE_WATSON_ON_ABORT"))
+ _set_abort_behavior(0, _CALL_REPORTFAULT);
/* In _DEBUG mode: Redirect all debug output (E.g. assert() to stderr.
(Ignored in release builds) */
Index: subversion/tests/svn_test_main.c
===================================================================
--- subversion/tests/svn_test_main.c (revision 1755433)
+++ subversion/tests/svn_test_main.c (working copy)
@@ -878,6 +878,10 @@
{
/* In release mode: Redirect abort() errors to stderr */
_set_error_mode(_OUT_TO_STDERR);
+ /* Allow scripts (e.g. our testsuite) to prevent creating a Watson crash
+ dump and also do not bring up the report dialog. */
+ if (getenv("SVN_CMDLINE_DISABLE_WATSON_ON_ABORT"))
+ _set_abort_behavior(0, _CALL_REPORTFAULT);
/* In _DEBUG mode: Redirect all debug output (E.g. assert() to stderr.
(Ignored in releas builds) */
Index: win-tests.py
===================================================================
--- win-tests.py (revision 1755433)
+++ win-tests.py (working copy)
@@ -1003,6 +1003,9 @@
# Ensure the tests directory is correctly cased
abs_builddir = fix_case(abs_builddir)
+# Disable Watson crash reporting while running the test suite
+os.environ['SVN_CMDLINE_DISABLE_WATSON_ON_ABORT'] = "1"
+
daemon = None
memcached = None
# Run the tests
smime.p7s
Description: S/MIME Cryptographic Signature

