about summary refs log tree commit diff
path: root/nixos/tests
diff options
context:
space:
mode:
authorAaron Andersen <aaron@fosslib.net>2019-04-22 08:30:23 -0400
committerGitHub <noreply@github.com>2019-04-22 08:30:23 -0400
commitc3f69d1373dda253a140c888fae67fee1218d30e (patch)
treeef3d37e3946163495e2f388d64ac2ed2ce2148a0 /nixos/tests
parent1f9943bcb0e6f52359f02eefde7af64a9307b8a9 (diff)
parent5f4df8e50935e219704389d8467f7edd363896d9 (diff)
downloadnixlib-c3f69d1373dda253a140c888fae67fee1218d30e.tar
nixlib-c3f69d1373dda253a140c888fae67fee1218d30e.tar.gz
nixlib-c3f69d1373dda253a140c888fae67fee1218d30e.tar.bz2
nixlib-c3f69d1373dda253a140c888fae67fee1218d30e.tar.lz
nixlib-c3f69d1373dda253a140c888fae67fee1218d30e.tar.xz
nixlib-c3f69d1373dda253a140c888fae67fee1218d30e.tar.zst
nixlib-c3f69d1373dda253a140c888fae67fee1218d30e.zip
Merge pull request #59381 from aanderse/automysqlbackup
automysqlinit: init at 3.0_rc6
Diffstat (limited to 'nixos/tests')
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/automysqlbackup.nix34
2 files changed, 35 insertions, 0 deletions
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 8b27ff808e6b..950eb01044f1 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -23,6 +23,7 @@ in
 {
   acme = handleTestOn ["x86_64-linux"] ./acme.nix {};
   atd = handleTest ./atd.nix {};
+  automysqlbackup = handleTest ./automysqlbackup.nix {};
   avahi = handleTest ./avahi.nix {};
   bcachefs = handleTestOn ["x86_64-linux"] ./bcachefs.nix {}; # linux-4.18.2018.10.12 is unsupported on aarch64
   beanstalkd = handleTest ./beanstalkd.nix {};
diff --git a/nixos/tests/automysqlbackup.nix b/nixos/tests/automysqlbackup.nix
new file mode 100644
index 000000000000..ada104a34de3
--- /dev/null
+++ b/nixos/tests/automysqlbackup.nix
@@ -0,0 +1,34 @@
+import ./make-test.nix ({ pkgs, lib, ... }:
+
+{
+  name = "automysqlbackup";
+  meta.maintainers = [ lib.maintainers.aanderse ];
+
+  machine =
+    { pkgs, ... }:
+    {
+      services.mysql.enable = true;
+      services.mysql.package = pkgs.mysql;
+      services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
+
+      services.automysqlbackup.enable = true;
+    };
+
+  testScript = ''
+    startAll;
+
+    # Need to have mysql started so that it can be populated with data.
+    $machine->waitForUnit("mysql.service");
+
+    # Wait for testdb to be fully populated (5 rows).
+    $machine->waitUntilSucceeds("mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5");
+
+    # Do a backup and wait for it to start
+    $machine->startJob("automysqlbackup.service");
+    $machine->waitForJob("automysqlbackup.service");
+
+    # wait for backup file and check that data appears in backup
+    $machine->waitForFile("/var/backup/mysql/daily/testdb");
+    $machine->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello");
+    '';
+})