diff options
| author | Artyom V. Poptsov <poptsov.artyom@gmail.com> | 2016-05-03 10:17:08 +0400 |
|---|---|---|
| committer | Artyom V. Poptsov <poptsov.artyom@gmail.com> | 2016-05-03 10:17:08 +0400 |
| commit | 703b7f8f8e9372691baf547d94ce0edaf397059f (patch) | |
| tree | 87e9e96111fddfbf3cc41e0773812d1f5fc25efe /tests | |
| parent | tests/client-server.scm (start-server/channel-test): Use 'start-server-loop' (diff) | |
| download | guile-ssh-703b7f8f8e9372691baf547d94ce0edaf397059f.tar.gz | |
tests/common.scm (make-server-for-test): Protect with a mutex
* tests/common.scm (make-server-for-test): Protect the whole part of getting a
free port and calling 'server-listen' with a mutex so different processes
trying to make a server won't interfere with each other.
* tests/client-server.scm: Remove extra 'server-listen' calls.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/client-server.scm | 2 | ||||
| -rw-r--r-- | tests/common.scm | 30 |
2 files changed, 19 insertions, 13 deletions
diff --git a/tests/client-server.scm b/tests/client-server.scm index c60a36f..1e0fd94 100644 --- a/tests/client-server.scm +++ b/tests/client-server.scm @@ -67,7 +67,6 @@ (define (simple-server-proc server) "start a SERVER that accepts a connection and handles a key exchange." - (server-listen server) (let ((s (server-accept server))) (server-handle-key-exchange s))) @@ -336,7 +335,6 @@ ;; server (lambda (server) - (server-listen server) (let ((session (server-accept server))) (server-handle-key-exchange session) (make-session-loop session diff --git a/tests/common.scm b/tests/common.scm index 2a04971..5da5086 100644 --- a/tests/common.scm +++ b/tests/common.scm @@ -105,18 +105,26 @@ (define (make-server-for-test) "Make a server with predefined parameters for a test." + (define mtx (make-mutex 'allow-external-unlock)) + (lock-mutex mtx) + (dynamic-wind + (const #f) + (lambda () + ;; FIXME: This hack is aimed to give every server its own unique + ;; port to listen to. Clients will pick up new port number + ;; automatically through global `port' symbol as well. + (set! *port* (get-unused-port)) - ;; FIXME: This hack is aimed to give every server its own unique - ;; port to listen to. Clients will pick up new port number - ;; automatically through global `port' symbol as well. - (set! *port* (get-unused-port)) - - (make-server - #:bindaddr %addr - #:bindport *port* - #:rsakey %rsakey - #:dsakey %dsakey - #:log-verbosity 'rare)) + (let ((s (make-server + #:bindaddr %addr + #:bindport *port* + #:rsakey %rsakey + #:dsakey %dsakey + #:log-verbosity 'rare))) + (server-listen s) + s)) + (lambda () + (unlock-mutex mtx)))) ;;; Port helpers. |
