diff options
author | Ioannis Kappas <ioannis.kappas@gmail.com> | 2021-02-03 22:50:54 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2021-02-06 20:18:57 +0200 |
commit | d640ec27183c9424daaf2d5dcb683ed1ff39d036 (patch) | |
tree | 602bc1e2f789a1b245fc61a9bd0209b3549de921 | |
parent | b76864ef5513a9c1f7fe1138266dfab47f6fe350 (diff) | |
download | emacs-d640ec27183c9424daaf2d5dcb683ed1ff39d036.tar.gz |
New test for src/process.c on MS-Windows
* test/src/process-tests.el (process-sentinel-interrupt-event):
New test. (Bug#46284)
Copyright-paperwork-exempt: yes
-rw-r--r-- | test/src/process-tests.el | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/src/process-tests.el b/test/src/process-tests.el index a3fba8d328b..950d0814c2a 100644 --- a/test/src/process-tests.el +++ b/test/src/process-tests.el @@ -879,5 +879,34 @@ Return nil if FILENAME doesn't exist." (file-regular-p filename) filename))) +;; Bug#46284 +(ert-deftest process-sentinel-interrupt-event () + "Test that interrupting a process on MS-Windows sends the + \"interrupt\" event to the process sentinel." + (skip-unless (eq system-type 'windows-nt)) + (with-temp-buffer + (let* ((proc-buf (current-buffer)) + ;; Start a new emacs process to wait idly until interrupted. + (cmd "emacs -batch --eval=\"(sit-for 50000)\"") + (proc (start-file-process-shell-command + "test/process-sentinel-signal-event" proc-buf cmd)) + (events '())) + + ;; Capture any incoming events. + (set-process-sentinel proc + (lambda (proc event) + (push event events))) + ;; Wait for the process to start. + (sleep-for 2) + (should (equal 'run (process-status proc))) + ;; Interrupt the sub-process and wait for it to die. + (interrupt-process proc) + (sleep-for 2) + ;; Should have received SIGINT... + (should (equal 'signal (process-status proc))) + (should (equal 2 (process-exit-status proc))) + ;; ...and the change description should be "interrupt". + (should (equal '("interrupt\n") events))))) + (provide 'process-tests) ;;; process-tests.el ends here |