Clément Lassieur writes: > Christopher Baines 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. Because of make-forkexec-constructor, it is the main PID as set in the external pid file created by PostgreSQL. > 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)) Sure, I'm happy with this. I'll send some new patches soonish.