Subject: [bug#30701] [PATCH 3/4] tests: databases: Add a system test for PostgreSQL.

From: Clément Lassieur <[email-masked]>
Date: Mon, 05 Mar 2018 01:32:32 +0100

Christopher Baines <[email-masked]> writes:

> * gnu/tests/databases.scm (%postgresql-os, %test-postgresql): New variables.
>   (run-postgresql-test): New procedure.
> ---
>  gnu/tests/databases.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 59 insertions(+)
...

> +          (test-assert "service running"
> +            (marionette-eval
> +             '(begin
> +                (use-modules (gnu services herd))
> +                (match (start-service 'postgres)
> +                  (#f #f)
> +                  (('service response-parts ...)
> +                   (match (assq-ref response-parts 'running)
> +                     ((pid) (number? pid))))))
> +             marionette))

I don't understand the point of the PID check here.  pg_ctl will ensure
that the daemon has started (by checking its PID), so I don't think
there is any need to redo its work.  I guess the PID you'll get here is
the one of pg_ctl, which is probably not what you want.

I believe that (start-service 'postgres) returning true means pg_ctl
succeeded in its check that the daemon is running.  So this is probably
enough:

          (test-assert "service running"
            (marionette-eval
             '(begin
                (use-modules (gnu services herd))
                (start-service 'postgres))
             marionette))

Clément