Message ID | 20191021174223.28196-1-mail@cbaines.net |
---|---|
State | Accepted |
Headers | show |
Series | [bug#37855] gnu: guix-data-service: Enable build time tests. | expand |
Hi, Christopher Baines <mail@cbaines.net> skribis: > Previously the tests were not run, as PostgreSQL wasn't running at build > time. Now there's a new target, check-with-tmp-database that uses ephemeralpg > to run the tests without relying on an externally managed PostgreSQL service. > > * gnu/packages/web.scm (guix-data-service)[arguments]: Remove #:tests? #f, and > set #:test-target to "check-with-tmp-database". > [native-inputs]: Add ephemeralpg. Nice, LGTM! I wonder: can’t you just have “make check” do this, or do you want to have “make check” talk to a real database instead? (For the Guix test suite, ‘test-env’ spawns a daemon with a temporary store for test purposes; I wonder if the situation is comparable here.) Thanks, Ludo’.
Ludovic Courtès <ludo@gnu.org> writes: > Hi, > > Christopher Baines <mail@cbaines.net> skribis: > >> Previously the tests were not run, as PostgreSQL wasn't running at build >> time. Now there's a new target, check-with-tmp-database that uses ephemeralpg >> to run the tests without relying on an externally managed PostgreSQL service. >> >> * gnu/packages/web.scm (guix-data-service)[arguments]: Remove #:tests? #f, and >> set #:test-target to "check-with-tmp-database". >> [native-inputs]: Add ephemeralpg. > > Nice, LGTM! Great, I've pushed this now as 353f5f7aa7ea575f9f04d3a0b277bbb8012b942d. > I wonder: can’t you just have “make check” do this, or do you want to > have “make check” talk to a real database instead? It's mostly a new target as I already had "make check" just run the tests, but yeah, it might be more useful for "make check" to setup an empty database, then run the tests. I'm not quite sure yet.
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 5487eb2e71..a91059f73d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4044,11 +4044,11 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") "0awfvps7k9bpg3gpgc93y401g7pjabx7mr9960vigad8vddhixqi")))) (build-system gnu-build-system) (arguments - '(#:tests? #f ; TODO Tests require PostgreSQL - #:modules ((guix build utils) + '(#:modules ((guix build utils) (guix build gnu-build-system) (ice-9 rdelim) (ice-9 popen)) + #:test-target "check-with-tmp-database" #:phases (modify-phases %standard-phases (add-after 'set-paths 'set-GUIX_ENVIRONMENT @@ -4106,6 +4106,7 @@ CDF, Atom 0.3, and Atom 1.0 feeds.") `(("guile" ,guile-2.2) ("autoconf" ,autoconf) ("automake" ,automake) + ("ephemeralpg" ,ephemeralpg) ("emacs-with-modules" ,(directory-union "emacs-union" (list emacs-no-x