tests: databases: Add a simple test for MySQL. Previously, the activation phase for this service caused some systems using it to not boot. This test checks that it's possible to boot a system using it, and at least start the service. * gnu/tests/databases.scm (%mysql-os, %test-mysql): New variables. (run-mysql-test): New procedure.
1 files changed, 60 insertions(+), 1 deletions(-) M gnu/tests/databases.scm
M gnu/tests/databases.scm => gnu/tests/databases.scm +60 -1
@@ 29,7 29,8 @@ #:use-module (guix gexp) #:use-module (guix store) #:export (%test-memcached %test-mongodb)) %test-mongodb %test-mysql)) (define %memcached-os (simple-operating-system @@ 205,3 206,61 @@ (name "mongodb") (description "Connect to a running MONGODB server.") (value (run-mongodb-test)))) ;;; ;;; The MySQL service. ;;; (define %mysql-os (simple-operating-system (mysql-service))) (define* (run-mysql-test) "Run tests in %MYSQL-OS." (define os (marionette-operating-system %mysql-os #:imported-modules '((gnu services herd) (guix combinators)))) (define vm (virtual-machine (operating-system os) (memory-size 512))) (define test (with-imported-modules '((gnu build marionette)) #~(begin (use-modules (srfi srfi-11) (srfi srfi-64) (gnu build marionette)) (define marionette (make-marionette (list #$vm))) (mkdir #$output) (chdir #$output) (test-begin "mysql") (test-assert "service running" (marionette-eval '(begin (use-modules (gnu services herd)) (match (start-service 'mysql) (#f #f) (('service response-parts ...) (match (assq-ref response-parts 'running) ((pid) (number? pid)))))) marionette)) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) (gexp->derivation "mysql-test" test)) (define %test-mysql (system-test (name "mysql") (description "Start the MySQL service.") (value (run-mysql-test))))