[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 7fc27ea: Fix crashing emacs-module tests on MS-Wind
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] master 7fc27ea: Fix crashing emacs-module tests on MS-Windows |
Date: |
Wed, 9 Aug 2017 13:18:04 -0400 (EDT) |
branch: master
commit 7fc27ea70bc7dc24776b2c098ac970f2f21e37fb
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
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.
---
src/w32fns.c | 8 ++++++++
test/src/emacs-module-tests.el | 16 ++++++++++++----
2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/src/w32fns.c b/src/w32fns.c
index 457599f..bf3c1d5 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -10708,6 +10708,11 @@ default value t means to add the width of one
canonical character of the
tip frame. */);
Vw32_tooltip_extra_pixels = Qt;
+ DEFVAR_BOOL ("w32-disable-abort-dialog",
+ w32_disable_abort_dialog,
+ doc: /* Non-nil means don't display the abort dialog when
aborting. */);
+ w32_disable_abort_dialog = 0;
+
#if 0 /* TODO: Port to W32 */
defsubr (&Sx_change_window_property);
defsubr (&Sx_delete_window_property);
@@ -10902,6 +10907,9 @@ w32_backtrace (void **buffer, int limit)
void
emacs_abort (void)
{
+ if (w32_disable_abort_dialog)
+ abort ();
+
int button;
button = MessageBox (NULL,
"A fatal error has occurred!\n\n"
diff --git a/test/src/emacs-module-tests.el b/test/src/emacs-module-tests.el
index 2aa85f0..6a7ba55 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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 7fc27ea: Fix crashing emacs-module tests on MS-Windows,
Eli Zaretskii <=