diff options
author | ajs124 <git@ajs124.de> | 2021-12-08 16:33:23 +0000 |
---|---|---|
committer | ajs124 <git@ajs124.de> | 2022-01-22 02:27:05 +0100 |
commit | 37ba30c49479b561b081d33cd9305140ec192bf4 (patch) | |
tree | ff43fafaea81cc788388807af3c7f93da48f22d1 | |
parent | a2ec554e83acf57441060f3765efbcd25afec6c6 (diff) | |
download | nixpkgs-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.nix | 81 |
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 |