From bc58201ec22aeb07b61dc1e482d6a57868436eef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 21 Jan 2018 00:16:48 +0100 Subject: [PATCH] tests: Cgit test waits for /var/run/shepherd/socket. Previously tests sometimes start before the shepherd was listening, leading to test failures. * gnu/tests/version-control.scm (run-cgit-test)[test]: Add "shepherd socket ready" test. Rename to two "service running" tests for clarity. --- gnu/tests/version-control.scm | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm index 7367861b05..c20e59985e 100644 --- a/gnu/tests/version-control.scm +++ b/gnu/tests/version-control.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 Oleg Pykhalov -;;; Copyright © 2017 Ludovic Courtès +;;; Copyright © 2017, 2018 Ludovic Courtès ;;; Copyright © 2017 Clément Lassieur ;;; ;;; This file is part of GNU Guix. @@ -130,8 +130,25 @@ (define marionette (test-begin "cgit") + ;; XXX: Shepherd reads the config file *before* binding its control + ;; socket, so /var/run/shepherd/socket might not exist yet when the + ;; 'marionette' service is started. + (test-assert "shepherd socket ready" + (marionette-eval + `(begin + (use-modules (gnu services herd)) + (let loop ((i 10)) + (cond ((file-exists? (%shepherd-socket-file)) + #t) + ((> i 0) + (sleep 1) + (loop (- i 1))) + (else + 'failure)))) + marionette)) + ;; Wait for nginx to be up and running. - (test-eq "service running" + (test-eq "nginx running" 'running! (marionette-eval '(begin @@ -141,7 +158,7 @@ (define marionette marionette)) ;; Wait for fcgiwrap to be up and running. - (test-eq "service running" + (test-eq "fcgiwrap running" 'running! (marionette-eval '(begin