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