Package: guile-2.0 / 2.0.13+1-5.1

0003-tests-Avoid-race-condition-in-REPL-server-test.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
From 755f863aac915e94c5e0cc57389a4cad49ad2caa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Fri, 4 Nov 2016 22:45:51 +0100
Subject: tests: Avoid race condition in REPL server test.

Fixes <http://bugs.gnu.org/24769>.
Reported by Rob Browning <rlb@defaultvalue.org>.

* test-suite/tests/00-repl-server.test ("simple expression"): Add call
to 'select' before 'display'.

Origin: upstream, commit: 2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4
Bug: https://bugs.gnu.org/24769
---
 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 ca389bafb..33c3bdf12 100644
--- a/test-suite/tests/00-repl-server.test
+++ b/test-suite/tests/00-repl-server.test
@@ -104,8 +104,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