diff options
author | Timotej Lazar <timotej.lazar@araneo.si> | 2022-07-15 07:56:06 +0200 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2022-07-15 09:38:42 +0100 |
commit | 6a2a8ca1f5560c37cdf20cbbac972db64a9dbac9 (patch) | |
tree | 68c86db44b73e9d7ab36705e7f0190c06ad7e3d7 | |
parent | 9238ba58748d99970674e098c9b1b0ed8ca66c14 (diff) | |
download | guix-6a2a8ca1f5560c37cdf20cbbac972db64a9dbac9.tar.gz guix-6a2a8ca1f5560c37cdf20cbbac972db64a9dbac9.zip |
gnu: tests: Fix guix-data-service test.
Since revision 32, guix-data-service starts immediately but returns an HTTP
error code until initialization is complete. Adjust the test accordingly, and
remove the increased startup time limit.
* gnu/services/guix.scm (guix-data-service): Use default #:pid-file-timeout.
* gnu/tests/guix.scm (guix-data-service): Retry the http-get test several
times to give the service time to initialize.
Signed-off-by: Christopher Baines <mail@cbaines.net>
-rw-r--r-- | gnu/services/guix.scm | 2 | ||||
-rw-r--r-- | gnu/tests/guix.scm | 21 |
2 files changed, 15 insertions, 8 deletions
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm index 338e027245..dac1e5841a 100644 --- a/gnu/services/guix.scm +++ b/gnu/services/guix.scm @@ -652,8 +652,6 @@ ca-certificates.crt file in the system profile." #:user #$user #:group #$group #:pid-file "/var/run/guix-data-service/pid" - ;; Allow time for migrations to run - #:pid-file-timeout 120 #:environment-variables `(,(string-append "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale") diff --git a/gnu/tests/guix.scm b/gnu/tests/guix.scm index a4c3e35e5d..ad0980a10c 100644 --- a/gnu/tests/guix.scm +++ b/gnu/tests/guix.scm @@ -222,14 +222,23 @@ host all all ::1/128 trust")))))) ((pid) (number? pid)))))) marionette)) + ;; The service starts immediately but replies with status 500 until + ;; initialization is complete, so keep trying for a while. + (define (try-http-get attempts) + (let ((status + (let-values (((response text) + (http-get #$(simple-format + #f "http://localhost:~A/healthcheck" + forwarded-port)))) + (response-code response)))) + (if (or (= status 200) (<= attempts 1)) + status + (begin (sleep 5) + (try-http-get (- attempts 1)))))) + (test-equal "http-get" 200 - (let-values - (((response text) - (http-get #$(simple-format - #f "http://localhost:~A/healthcheck" forwarded-port) - #:decode-body? #t))) - (response-code response))) + (try-http-get 12)) (test-end)))) |