summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-04-29 16:43:52 +0200
committerLudovic Courtès <ludo@gnu.org>2022-04-29 18:07:17 +0200
commit73eeeeafbb0765f76834b53c9fe6cf3c8f740840 (patch)
tree5465cdbdcda8383dd3d2d636b0f991c3a741982d
parent1bb177d08401feb4370d6422f2c6fc746adc7c2a (diff)
downloadguix-73eeeeafbb0765f76834b53c9fe6cf3c8f740840.tar.gz
tests: Avoid starting services to check whether they're running.
Fixes a regression introduced in the Shepherd 0.9.0 whereby clients can
start a service that is already being started, leading to two instances
of the process (and usually failure of the second attempt to start it).

Partly fixes <https://issues.guix.gnu.org/54786>.
Reported by Mathieu Othacehe.

* gnu/tests/version-control.scm (run-cgit-test)
["nginx running", "fcgiwrap running"]: Wail for a file/TCP port instead
of starting the service.
(run-git-http-test)["nginx running"]: Likewise.
(run-gitile-test)["nginx running"]: Likewise.
-rw-r--r--gnu/tests/version-control.scm32
1 files changed, 5 insertions, 27 deletions
diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm
index fd3dba88ba..18c68a58f2 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, 2018 Oleg Pykhalov <go.wigust@gmail.com>
-;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
 ;;;
@@ -154,19 +154,11 @@ HTTP-PORT."
 
           ;; Wait for nginx to be up and running.
           (test-assert "nginx running"
-            (marionette-eval
-             '(begin
-                (use-modules (gnu services herd))
-                (start-service 'nginx))
-             marionette))
+            (wait-for-file "/var/run/nginx/pid" marionette))
 
           ;; Wait for fcgiwrap to be up and running.
           (test-assert "fcgiwrap running"
-            (marionette-eval
-             '(begin
-                (use-modules (gnu services herd))
-                (start-service 'fcgiwrap))
-             marionette))
+            (wait-for-tcp-port 9000 marionette))
 
           ;; Make sure the PID file is created.
           (test-assert "PID file"
@@ -272,11 +264,7 @@ HTTP-PORT."
 
           ;; Wait for nginx to be up and running.
           (test-assert "nginx running"
-            (marionette-eval
-             '(begin
-                (use-modules (gnu services herd))
-                (start-service 'nginx))
-             marionette))
+            (wait-for-file "/var/run/nginx/pid" marionette))
 
           ;; Make sure Git test repository is created.
           (test-assert "Git test repository"
@@ -486,17 +474,7 @@ HTTP-PORT."
 
           ;; Wait for nginx to be up and running.
           (test-assert "nginx running"
-            (marionette-eval
-             '(begin
-                (use-modules (gnu services herd))
-                (start-service 'nginx))
-             marionette))
-
-          ;; Make sure the PID file is created.
-          (test-assert "PID file"
-            (marionette-eval
-             '(file-exists? "/var/run/nginx/pid")
-             marionette))
+            (wait-for-file "/var/run/nginx/pid" marionette))
 
           ;; Make sure Git test repository is created.
           (test-assert "Git test repository"