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.
This commit is contained in:
Ludovic Courtès 2022-04-29 16:43:52 +02:00
parent 1bb177d084
commit 73eeeeafbb
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -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 @@ (define marionette
;; 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 @@ (define marionette
;; 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 @@ (define marionette
;; 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"