summary refs log tree commit diff
diff options
context:
space:
mode:
authorajs124 <git@ajs124.de>2021-12-08 16:33:23 +0000
committerajs124 <git@ajs124.de>2022-01-22 02:27:05 +0100
commit37ba30c49479b561b081d33cd9305140ec192bf4 (patch)
treeff43fafaea81cc788388807af3c7f93da48f22d1
parenta2ec554e83acf57441060f3765efbcd25afec6c6 (diff)
downloadnixpkgs-37ba30c49479b561b081d33cd9305140ec192bf4.tar
nixpkgs-37ba30c49479b561b081d33cd9305140ec192bf4.tar.gz
nixpkgs-37ba30c49479b561b081d33cd9305140ec192bf4.tar.bz2
nixpkgs-37ba30c49479b561b081d33cd9305140ec192bf4.tar.lz
nixpkgs-37ba30c49479b561b081d33cd9305140ec192bf4.tar.xz
nixpkgs-37ba30c49479b561b081d33cd9305140ec192bf4.tar.zst
nixpkgs-37ba30c49479b561b081d33cd9305140ec192bf4.zip
nixos/tests/mysql-autobackup: test multiple mariadb versions
-rw-r--r--nixos/tests/mysql/mysql-autobackup.nix81
1 files changed, 48 insertions, 33 deletions
diff --git a/nixos/tests/mysql/mysql-autobackup.nix b/nixos/tests/mysql/mysql-autobackup.nix
index b0ec7daaf05..101122f7bde 100644
--- a/nixos/tests/mysql/mysql-autobackup.nix
+++ b/nixos/tests/mysql/mysql-autobackup.nix
@@ -1,38 +1,53 @@
-import ./../make-test-python.nix ({ pkgs, lib, ... }:
-
 {
-  name = "automysqlbackup";
-  meta.maintainers = [ lib.maintainers.aanderse ];
-
-  machine =
-    { pkgs, ... }:
-    {
-      services.mysql.enable = true;
-      services.mysql.package = pkgs.mariadb;
-      services.mysql.initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
+  system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../../.. { inherit system config; },
+  lib ? pkgs.lib
+}:
+
+let
+  inherit (import ./common.nix { inherit pkgs lib; }) mkTestName mariadbPackages;
+
+  makeTest = import ./../make-test-python.nix;
+
+  makeAutobackupTest = {
+    package,
+    name ? mkTestName package,
+  }: makeTest {
+    name = "${name}-automysqlbackup";
+    meta.maintainers = [ lib.maintainers.aanderse ];
+
+    machine = {
+      services.mysql = {
+        inherit package;
+        enable = true;
+        initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
+      };
 
       services.automysqlbackup.enable = true;
     };
 
-  testScript = ''
-    start_all()
-
-    # Need to have mysql started so that it can be populated with data.
-    machine.wait_for_unit("mysql.service")
-
-    with subtest("Wait for testdb to be fully populated (5 rows)."):
-        machine.wait_until_succeeds(
-            "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
-        )
-
-    with subtest("Do a backup and wait for it to start"):
-        machine.start_job("automysqlbackup.service")
-        machine.wait_for_job("automysqlbackup.service")
-
-    with subtest("wait for backup file and check that data appears in backup"):
-        machine.wait_for_file("/var/backup/mysql/daily/testdb")
-        machine.succeed(
-            "${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"
-        )
-    '';
-})
+    testScript = ''
+      start_all()
+
+      # Need to have mysql started so that it can be populated with data.
+      machine.wait_for_unit("mysql.service")
+
+      with subtest("Wait for testdb to be fully populated (5 rows)."):
+          machine.wait_until_succeeds(
+              "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+          )
+
+      with subtest("Do a backup and wait for it to start"):
+          machine.start_job("automysqlbackup.service")
+          machine.wait_for_job("automysqlbackup.service")
+
+      with subtest("wait for backup file and check that data appears in backup"):
+          machine.wait_for_file("/var/backup/mysql/daily/testdb")
+          machine.succeed(
+              "${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"
+          )
+      '';
+  };
+in
+  lib.mapAttrs (_: package: makeAutobackupTest { inherit package; }) mariadbPackages