1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-04 11:00:45 -08:00

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
This commit is contained in:
Ioannis Kappas 2021-02-03 22:50:54 +00:00 committed by Eli Zaretskii
parent b76864ef55
commit d640ec2718

View file

@ -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