Commit | Line | Data |
---|---|---|
8134dc1f LC |
1 | commit 8d6209ea56241bb1890c142539927c9ef3fb5a13 |
2 | Author: Ludovic Courtès <ludo@gnu.org> | |
3 | Date: Fri Nov 4 22:44:32 2016 +0100 | |
4 | ||
5 | tests: Throw 'unresolved when the REPL server is too slow. | |
6 | ||
7 | commit 2fbde7f02adb8c6585e9baf6e293ee49cd23d4c4 | |
8 | Author: Ludovic Courtès <ludo@gnu.org> | |
9 | Date: Fri Nov 4 22:45:51 2016 +0100 | |
10 | ||
11 | tests: Avoid race condition in REPL server test. | |
12 | ||
13 | index ca389ba..4b5ec0c 100644 | |
14 | --- a/test-suite/tests/00-repl-server.test | |
15 | +++ b/test-suite/tests/00-repl-server.test | |
16 | @@ -61,10 +61,11 @@ socket connected to that server." | |
17 | (lambda () | |
18 | (connect client-socket sockaddr)) | |
19 | (lambda args | |
20 | - (when (and (memv (system-error-errno args) | |
21 | - (list ENOENT ECONNREFUSED)) | |
22 | - (< tries 3)) | |
23 | - (sleep 1) | |
24 | + (when (memv (system-error-errno args) | |
25 | + (list ENOENT ECONNREFUSED)) | |
26 | + (when (> tries 30) | |
27 | + (throw 'unresolved)) | |
28 | + (usleep 100) | |
29 | (loop (+ tries 1)))))) | |
30 | ||
31 | (proc client-socket)) | |
32 | @@ -104,8 +105,14 @@ reached." | |
33 | "scheme@(repl-server)> $1 = 42\n" | |
34 | (with-repl-server socket | |
35 | (read-until-prompt socket %last-line-before-prompt) | |
36 | - (display "(+ 40 2)\n(quit)\n" socket) | |
37 | - (read-string socket))) | |
38 | + | |
39 | + ;; Wait until 'repl-reader' in boot-9 has written the prompt. | |
40 | + ;; Otherwise, if we write too quickly, 'repl-reader' checks for | |
41 | + ;; 'char-ready?' and doesn't print the prompt. | |
42 | + (match (select (list socket) '() (list socket) 3) | |
43 | + (((_) () ()) | |
44 | + (display "(+ 40 2)\n(quit)\n" socket) | |
45 | + (read-string socket))))) | |
46 | ||
47 | (pass-if "HTTP inter-protocol attack" ;CVE-2016-8606 | |
48 | (with-repl-server socket |