summary refs log tree commit diff
path: root/nixos/tests
diff options
context:
space:
mode:
authorMario Rodas <marsam@users.noreply.github.com>2021-07-07 18:41:57 -0500
committerGitHub <noreply@github.com>2021-07-07 18:41:57 -0500
commitbb1ff7da54b22be0b314c4dffb56212e9678e7db (patch)
treef555792776a1d62887633507b6012cd92757a0dd /nixos/tests
parent596f825533919ca114d04b92a640756b9ad84a7e (diff)
parent81c8189a841728a813bcde8604b80427fcf33522 (diff)
downloadnixpkgs-bb1ff7da54b22be0b314c4dffb56212e9678e7db.tar
nixpkgs-bb1ff7da54b22be0b314c4dffb56212e9678e7db.tar.gz
nixpkgs-bb1ff7da54b22be0b314c4dffb56212e9678e7db.tar.bz2
nixpkgs-bb1ff7da54b22be0b314c4dffb56212e9678e7db.tar.lz
nixpkgs-bb1ff7da54b22be0b314c4dffb56212e9678e7db.tar.xz
nixpkgs-bb1ff7da54b22be0b314c4dffb56212e9678e7db.tar.zst
nixpkgs-bb1ff7da54b22be0b314c4dffb56212e9678e7db.zip
Merge pull request #125696 from hercules-ci/postgresql-backup-only-replace-if-successful
nixos/postgresqlBackup: only replace if successful
Diffstat (limited to 'nixos/tests')
-rw-r--r--nixos/tests/postgresql.nix22
1 files changed, 22 insertions, 0 deletions
diff --git a/nixos/tests/postgresql.nix b/nixos/tests/postgresql.nix
index 091e64294ac..0369a070719 100644
--- a/nixos/tests/postgresql.nix
+++ b/nixos/tests/postgresql.nix
@@ -73,8 +73,30 @@ let
           machine.succeed(
               "systemctl start ${backupService}.service",
               "zcat /var/backup/postgresql/${backupName}.sql.gz | grep '<test>ok</test>'",
+              "ls -hal /var/backup/postgresql/ >/dev/console",
               "stat -c '%a' /var/backup/postgresql/${backupName}.sql.gz | grep 600",
           )
+      with subtest("Backup service fails gracefully"):
+          # Sabotage the backup process
+          machine.succeed("rm /run/postgresql/.s.PGSQL.5432")
+          machine.fail(
+              "systemctl start ${backupService}.service",
+          )
+          machine.succeed(
+              "ls -hal /var/backup/postgresql/ >/dev/console",
+              "zcat /var/backup/postgresql/${backupName}.prev.sql.gz | grep '<test>ok</test>'",
+              "stat /var/backup/postgresql/${backupName}.in-progress.sql.gz",
+          )
+          # In a previous version, the second run would overwrite prev.sql.gz,
+          # so we test a second run as well.
+          machine.fail(
+              "systemctl start ${backupService}.service",
+          )
+          machine.succeed(
+              "stat /var/backup/postgresql/${backupName}.in-progress.sql.gz",
+              "zcat /var/backup/postgresql/${backupName}.prev.sql.gz | grep '<test>ok</test>'",
+          )
+
 
       with subtest("Initdb works"):
           machine.succeed("sudo -u postgres initdb -D /tmp/testpostgres2")