emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 7e527af: Fix non-deterministic process test


From: Noam Postavsky
Subject: [Emacs-diffs] emacs-26 7e527af: Fix non-deterministic process test
Date: Sun, 1 Sep 2019 14:42:35 -0400 (EDT)

branch: emacs-26
commit 7e527af72cae65fdb3f61c7d92907cfdfd1e6ea3
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Fix non-deterministic process test
    
    * test/src/process-tests.el (set-process-filter-t): Don't assume
    subprocess output will come in a single chunk, keep waiting for more
    data until next "prompt" is read from subprocess.
    
    (cherry picked from commit aa49aa884053d0e8b33efe265f2aade19d1f3f3d)
---
 test/src/process-tests.el | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/test/src/process-tests.el b/test/src/process-tests.el
index 7a6762a..ef057af 100644
--- a/test/src/process-tests.el
+++ b/test/src/process-tests.el
@@ -154,24 +154,30 @@
                   (concat invocation-directory invocation-name)
                   "-Q" "--batch" "--eval"
                   (prin1-to-string
-                   '(let (s)
-                      (while (setq s (read-from-minibuffer "$ "))
+                   '(let ((s nil) (count 0))
+                      (while (setq s (read-from-minibuffer
+                                      (format "%d> " count)))
                         (princ s)
-                        (princ "\n")))))))
+                        (princ "\n")
+                        (setq count (1+ count))))))))
       (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$ "))
+      (while (not (equal (buffer-substring
+                          (line-beginning-position) (point-max))
+                         "1> "))
+        (accept-process-output proc))   ; Read "one".
+      (should (equal (buffer-string) "0> one\n1> "))
       (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$ "))
+      (should (equal (buffer-string) "0> one\n1> "))
       (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$ ")))))
+      (while (not (equal (buffer-substring
+                          (line-beginning-position) (point-max))
+                         "2> "))
+        (accept-process-output proc))   ; Read "Two".
+      (should (equal (buffer-string) "0> one\n1> two\n2> ")))))
 
 (ert-deftest start-process-should-not-modify-arguments ()
   "`start-process' must not modify its arguments in-place."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]