summaryrefslogtreecommitdiff
path: root/test/src/emacs-module-tests.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2017-08-09 20:15:46 +0300
committerEli Zaretskii <eliz@gnu.org>2017-08-09 20:15:46 +0300
commit7fc27ea70bc7dc24776b2c098ac970f2f21e37fb (patch)
tree6506847574eda46651ac325d03a000fb80fd437c /test/src/emacs-module-tests.el
parentda4438e14f1c55808937872b6d651a807404daa2 (diff)
downloademacs-7fc27ea70bc7dc24776b2c098ac970f2f21e37fb.tar.gz
emacs-7fc27ea70bc7dc24776b2c098ac970f2f21e37fb.tar.bz2
emacs-7fc27ea70bc7dc24776b2c098ac970f2f21e37fb.zip
Fix crashing emacs-module tests on MS-Windows
* src/w32fns.c (syms_of_w32fns) <w32-disable-abort-dialog>: New variable. (emacs_abort): If w32-disable-abort-dialog is non-nil, abort right away, without displaying the Abort dialog, which waits for the user. * test/src/emacs-module-tests.el (module--test-assertion): Run the inferior Emacs with the w32 abort dialog disabled. Expect the status of the aborted Emacs sub-process to be 3 on MS-Windows and 2 on MS-DOS.
Diffstat (limited to 'test/src/emacs-module-tests.el')
-rw-r--r--test/src/emacs-module-tests.el16
1 files changed, 12 insertions, 4 deletions
diff --git a/test/src/emacs-module-tests.el b/test/src/emacs-module-tests.el
index 2aa85f0b247..6a7ba5580da 100644
--- a/test/src/emacs-module-tests.el
+++ b/test/src/emacs-module-tests.el
@@ -208,14 +208,22 @@ must evaluate to a regular expression string."
(with-temp-buffer
(let* ((default-directory tempdir)
(status (call-process mod-test-emacs nil t nil
- "-batch" "-Q" "-module-assertions" "-eval"
+ "-batch" "-Q" "-module-assertions"
+ "-eval" "(setq w32-disable-abort-dialog t)"
+ "-eval"
,(prin1-to-string
`(progn
(require 'mod-test ,mod-test-file)
,@body)))))
- (should (stringp status))
- ;; eg "Aborted" or "Abort trap: 6"
- (should (string-prefix-p "Abort" status))
+ ;; Aborting doesn't raise a signal on MS-DOS/Windows, but
+ ;; rather exits with a non-zero status: 2 on MS-DOS (see
+ ;; msdos.c:msdos_abort), 3 on Windows, per MSDN documentation
+ ;; of 'abort'.
+ (if (memq system-type '(ms-dos windows-nt))
+ (should (>= status 2))
+ (should (stringp status))
+ ;; eg "Aborted" or "Abort trap: 6"
+ (should (string-prefix-p "Abort" status)))
(search-backward "Emacs module assertion: ")
(goto-char (match-end 0))
(should (string-match-p ,pattern