summaryrefslogtreecommitdiffstats
path: root/t/200_maintscripts.t
diff options
context:
space:
mode:
Diffstat (limited to 't/200_maintscripts.t')
-rw-r--r--t/200_maintscripts.t46
1 files changed, 46 insertions, 0 deletions
diff --git a/t/200_maintscripts.t b/t/200_maintscripts.t
new file mode 100644
index 0000000..3fc5018
--- /dev/null
+++ b/t/200_maintscripts.t
@@ -0,0 +1,46 @@
+# This test runs last since we are reinstalling postgresql-common, and we want
+# to avoid spoiling the other tests with any version skew.
+
+use strict;
+
+use lib 't';
+use TestLib;
+use PgCommon;
+
+use Test::More tests => $PgCommon::rpm ? 1 : 15;
+
+if ($PgCommon::rpm) {
+ pass 'No maintainer script tests on rpm';
+ exit;
+}
+
+my $v = $MAJORS[-1];
+
+note -d "/run/systemd/system" ? "We are running systemd" : "We are not running systemd";
+
+# create cluster
+program_ok 0, "pg_createcluster $v main --start";
+
+# get postmaster PID
+my $postmaster_pid = `head -1 /var/lib/postgresql/$v/main/postmaster.pid`;
+chomp $postmaster_pid;
+ok $postmaster_pid > 0, "postmaster PID is $postmaster_pid";
+
+# "upgrade" postgresql-common to check if postgresql.service is left alone
+program_ok 0, 'apt-get update -q', 0, '';
+note `apt-cache policy postgresql-common`;
+program_ok 0, 'apt-get install -y --reinstall -o DPkg::Options::=--force-confnew postgresql-common', 0, '';
+note `apt-cache policy postgresql-common`;
+
+# get postmaster PID again, compare
+my $postmaster_pid2 = `head -1 /var/lib/postgresql/$v/main/postmaster.pid`;
+chomp $postmaster_pid2;
+ok $postmaster_pid2 > 0, "postmaster PID is $postmaster_pid2";
+is $postmaster_pid, $postmaster_pid2, "postmaster was not restarted";
+
+# stop server, clean up, check for leftovers
+program_ok 0, "pg_dropcluster $v main --stop";
+
+check_clean;
+
+# vim: filetype=perl