summaryrefslogtreecommitdiff
path: root/test/src/process-tests.el
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/process-tests.el')
-rw-r--r--test/src/process-tests.el29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/src/process-tests.el b/test/src/process-tests.el
index b853f77946d..7745fccaf9d 100644
--- a/test/src/process-tests.el
+++ b/test/src/process-tests.el
@@ -144,6 +144,35 @@
(should (equal "hello stderr!\n"
(mapconcat #'identity (nreverse stderr-output) "")))))
+(ert-deftest set-process-filter-t ()
+ "Test setting process filter to t and back." ;; Bug#36591
+ (with-temp-buffer
+ (let* ((print-level nil)
+ (print-length nil)
+ (proc (start-process
+ "test proc" (current-buffer)
+ (concat invocation-directory invocation-name)
+ "-Q" "--batch" "--eval"
+ (prin1-to-string
+ '(let (s)
+ (while (setq s (read-from-minibuffer "$ "))
+ (princ s)
+ (princ "\n")))))))
+ (set-process-query-on-exit-flag proc nil)
+ (send-string proc "one\n")
+ (should
+ (accept-process-output proc 1)) ; Read "one".
+ (should (equal (buffer-string) "$ one\n$ "))
+ (set-process-filter proc t) ; Stop reading from proc.
+ (send-string proc "two\n")
+ (should-not
+ (accept-process-output proc 1)) ; Can't read "two" yet.
+ (should (equal (buffer-string) "$ one\n$ "))
+ (set-process-filter proc nil) ; Resume reading from proc.
+ (should
+ (accept-process-output proc 1)) ; Read "two" from proc.
+ (should (equal (buffer-string) "$ one\n$ two\n$ ")))))
+
(ert-deftest start-process-should-not-modify-arguments ()
"`start-process' must not modify its arguments in-place."
;; See bug#21831.