nixos/tests/mysql-backup: fix non-deterministic failure (#40258)

Sometimes failed because of delayed creation of the backup file.
This commit is contained in:
xeji 2018-05-12 11:37:35 +02:00 committed by GitHub
parent 1472076176
commit a19cc36e1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,17 +23,25 @@ import ./make-test.nix ({ pkgs, ... } : {
testScript = testScript =
'' startAll; '' startAll;
# Delete backup file that may be left over from a previous test run.
# This is not needed on Hydra but useful for repeated local test runs.
$master->execute("rm -f /var/backup/mysql/testdb.gz");
# Need to have mysql started so that it can be populated with data. # Need to have mysql started so that it can be populated with data.
$master->waitForUnit("mysql.service"); $master->waitForUnit("mysql.service");
# Wait for testdb to be populated. # Wait for testdb to be fully populated (5 rows).
$master->sleep(10); $master->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 finish. # Do a backup and wait for it to start
$master->startJob("mysql-backup.service"); $master->startJob("mysql-backup.service");
$master->waitForJob("mysql-backup.service"); $master->waitForJob("mysql-backup.service");
# Check that data appears in backup # wait for backup to fail, because of database 'doesnotexist'
$master->waitUntilFails("systemctl is-active -q mysql-backup.service");
# wait for backup file and check that data appears in backup
$master->waitForFile("/var/backup/mysql/testdb.gz");
$master->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello"); $master->succeed("${pkgs.gzip}/bin/zcat /var/backup/mysql/testdb.gz | grep hello");
# Check that a failed backup is logged # Check that a failed backup is logged