tests: cuirass: Restore "cuirass running".
authorMathieu Othacehe <othacehe@gnu.org>
Tue, 23 Feb 2021 10:54:53 +0000 (11:54 +0100)
committerMathieu Othacehe <othacehe@gnu.org>
Tue, 23 Feb 2021 10:54:53 +0000 (11:54 +0100)
This is a follow-up of ab054868afe6a4ba9d8aa9943e265bd6a871d0ae. The test was
failing because the Shepherd control socket wasn't ready yet. Restore it but
make sure that the control socket is available first.

* gnu/tests/cuirass.scm ("shepherd socket ready"): New test.
("cuirass running"): Restore it.

gnu/tests/cuirass.scm

index 4aa7a29..04a7a71 100644 (file)
 
             (test-begin "cuirass")
 
+            ;; 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 cuirass to be up and running.
+            (test-assert "cuirass running"
+              (marionette-eval
+               '(begin
+                  (use-modules (gnu services herd))
+                  (start-service 'cuirass)
+                  #t)
+               marionette))
+
             (test-assert "cuirass-web running"
               (begin
                 (wait-for-tcp-port #$cuirass-web-port marionette)