guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 02/02: tests: Avoid race condition in REPL server test.


From: Ludovic Courtès
Subject: [Guile-commits] 02/02: tests: Avoid race condition in REPL server test.
Date: Fri, 4 Nov 2016 21:49:08 +0000 (UTC)

civodul pushed a commit to branch stable-2.0
in repository guile.

commit 2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4
Author: Ludovic Courtès <address@hidden>
Date:   Fri Nov 4 22:45:51 2016 +0100

    tests: Avoid race condition in REPL server test.
    
    Fixes <http://bugs.gnu.org/24769>.
    Reported by Rob Browning <address@hidden>.
    
    * test-suite/tests/00-repl-server.test ("simple expression"): Add call
    to 'select' before 'display'.
---
 test-suite/tests/00-repl-server.test |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/test-suite/tests/00-repl-server.test 
b/test-suite/tests/00-repl-server.test
index 1f570a9..4b5ec0c 100644
--- a/test-suite/tests/00-repl-server.test
+++ b/test-suite/tests/00-repl-server.test
@@ -105,8 +105,14 @@ reached."
       "scheme@(repl-server)> $1 = 42\n"
     (with-repl-server socket
       (read-until-prompt socket %last-line-before-prompt)
-      (display "(+ 40 2)\n(quit)\n" socket)
-      (read-string socket)))
+
+      ;; Wait until 'repl-reader' in boot-9 has written the prompt.
+      ;; Otherwise, if we write too quickly, 'repl-reader' checks for
+      ;; 'char-ready?' and doesn't print the prompt.
+      (match (select (list socket) '() (list socket) 3)
+        (((_) () ())
+         (display "(+ 40 2)\n(quit)\n" socket)
+         (read-string socket)))))
 
   (pass-if "HTTP inter-protocol attack"           ;CVE-2016-8606
     (with-repl-server socket



reply via email to

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