summary refs log tree commit diff
path: root/gnu/tests/databases.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/tests/databases.scm')
-rw-r--r--gnu/tests/databases.scm49
1 files changed, 47 insertions, 2 deletions
diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm
index e0544bbcd2..31d5ae4c6a 100644
--- a/gnu/tests/databases.scm
+++ b/gnu/tests/databases.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
+;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -215,7 +216,9 @@
 
 (define %postgresql-os
   (simple-operating-system
-   (service postgresql-service-type)))
+   (service postgresql-service-type
+            (postgresql-configuration
+             (postgresql postgresql-10)))))
 
 (define (run-postgresql-test)
   "Run tests in %POSTGRESQL-OS."
@@ -269,7 +272,7 @@
 
 (define %mysql-os
   (simple-operating-system
-   (mysql-service)))
+   (service mysql-service-type)))
 
 (define* (run-mysql-test)
   "Run tests in %MYSQL-OS."
@@ -309,6 +312,48 @@
                      ((pid) (number? pid))))))
              marionette))
 
+          (test-assert "mysql_upgrade completed"
+            (wait-for-file "/var/lib/mysql/mysql_upgrade_info" marionette))
+
+          (test-eq "create database"
+            0
+            (marionette-eval
+             '(begin
+                (system* #$(file-append mariadb "/bin/mysql")
+                         "-e" "CREATE DATABASE guix;"))
+             marionette))
+
+          (test-eq "create table"
+            0
+            (marionette-eval
+             '(begin
+                (system*
+                 #$(file-append mariadb "/bin/mysql") "guix"
+                 "-e" "CREATE TABLE facts (id INT, data VARCHAR(12));"))
+             marionette))
+
+          (test-eq "insert data"
+            0
+            (marionette-eval
+             '(begin
+                (system* #$(file-append mariadb "/bin/mysql") "guix"
+                         "-e" "INSERT INTO facts VALUES (1, 'awesome')"))
+             marionette))
+
+          (test-equal "retrieve data"
+            "awesome\n"
+            (marionette-eval
+             '(begin
+                (use-modules (ice-9 popen))
+                (let* ((port (open-pipe*
+                              OPEN_READ
+                              #$(file-append mariadb "/bin/mysql") "guix"
+                              "-NB" "-e" "SELECT data FROM facts WHERE id=1;"))
+                       (output (get-string-all port)))
+                  (close-pipe port)
+                  output))
+             marionette))
+
           (test-end)
           (exit (= (test-runner-fail-count (test-runner-current)) 0)))))