diff options
author | Christopher Baines <mail@cbaines.net> | 2017-09-09 15:31:38 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2017-10-08 17:31:49 +0100 |
commit | 02bc41c4cedd15c6a76ecd5218f9b5848de8baea (patch) | |
tree | 9f214ffd157f079525846c93e50941cd10bf7b4b | |
parent | b36e06c2b0889f1d0f939465589d36887ff24d33 (diff) | |
download | patches-02bc41c4cedd15c6a76ecd5218f9b5848de8baea.tar patches-02bc41c4cedd15c6a76ecd5218f9b5848de8baea.tar.gz |
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.
-rw-r--r-- | gnu/tests/databases.scm | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm index 9e335b27c6..e7097690a0 100644 --- a/gnu/tests/databases.scm +++ b/gnu/tests/databases.scm @@ -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)))) |