[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/06: marionette: Add wait-for-unix-socket.
From: |
Chris Marusich |
Subject: |
04/06: marionette: Add wait-for-unix-socket. |
Date: |
Tue, 28 Aug 2018 03:44:55 -0400 (EDT) |
marusich pushed a commit to branch master
in repository guix.
commit cb29343940dfffe8863c0a6b1e2b3494c7836b53
Author: Chris Marusich <address@hidden>
Date: Mon Jul 30 22:50:16 2018 -0700
marionette: Add wait-for-unix-socket.
* gnu/build/marionette.scm (wait-for-unix-socket): New variable.
---
gnu/build/marionette.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm
index 61284b8..f94eab5 100644
--- a/gnu/build/marionette.scm
+++ b/gnu/build/marionette.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <address@hidden>
+;;; Copyright © 2018 Chris Marusich <address@hidden>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,6 +28,7 @@
marionette-eval
wait-for-file
wait-for-tcp-port
+ wait-for-unix-socket
marionette-control
marionette-screen-text
wait-for-screen-text
@@ -214,6 +216,29 @@ MARIONETTE. Raise an error on failure."
('failure
(error "nobody's listening on port" port))))
+(define* (wait-for-unix-socket file-name marionette
+ #:key (timeout 20))
+ "Wait for up to TIMEOUT seconds for FILE-NAME, a Unix domain socket, to
+accept connections in MARIONETTE. Raise an error on failure."
+ (match (marionette-eval
+ `(begin
+ (let ((sock (socket PF_UNIX SOCK_STREAM 0)))
+ (let loop ((i 0))
+ (catch 'system-error
+ (lambda ()
+ (connect sock AF_UNIX ,file-name)
+ 'success)
+ (lambda args
+ (if (< i ,timeout)
+ (begin
+ (sleep 1)
+ (loop (+ 1 i)))
+ 'failure))))))
+ marionette)
+ ('success #t)
+ ('failure
+ (error "nobody's listening on unix domain socket" file-name))))
+
(define (marionette-control command marionette)
"Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as
\"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc)
- branch master updated (526ce41 -> 3bcb305), Chris Marusich, 2018/08/28
- 06/06: services: tor: Make it easier to use UNIX sockets., Chris Marusich, 2018/08/28
- 05/06: tests: tor: Add more test cases., Chris Marusich, 2018/08/28
- 04/06: marionette: Add wait-for-unix-socket.,
Chris Marusich <=
- 01/06: services: tor: Add a system test., Chris Marusich, 2018/08/28
- 02/06: services: tor: Rename activation procedure., Chris Marusich, 2018/08/28
- 03/06: marionette: Add support for QEMU's "quit" command., Chris Marusich, 2018/08/28