summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-01-21 00:16:48 +0100
committerLudovic Courtès <ludo@gnu.org>2018-01-21 00:24:03 +0100
commitbc58201ec22aeb07b61dc1e482d6a57868436eef (patch)
tree220e93d7d25f73afcd44ff166fc9ac0221967568
parent33033a620e64d64bc549b4472e2f4db61e801d18 (diff)
downloadguix-bc58201ec22aeb07b61dc1e482d6a57868436eef.tar.gz
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.
-rw-r--r--gnu/tests/version-control.scm23
1 files 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 <go.wigust@gmail.com>
-;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -130,8 +130,25 @@ HTTP-PORT."
 
           (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 @@ HTTP-PORT."
              marionette))
 
           ;; Wait for fcgiwrap to be up and running.
-          (test-eq "service running"
+          (test-eq "fcgiwrap running"
             'running!
             (marionette-eval
              '(begin