summaryrefslogtreecommitdiffstats
path: root/t/001_packages.t
diff options
context:
space:
mode:
Diffstat (limited to 't/001_packages.t')
-rw-r--r--t/001_packages.t87
1 files changed, 87 insertions, 0 deletions
diff --git a/t/001_packages.t b/t/001_packages.t
new file mode 100644
index 0000000..697e871
--- /dev/null
+++ b/t/001_packages.t
@@ -0,0 +1,87 @@
+# Check that the necessary packages are installed
+
+use warnings;
+use strict;
+
+use lib 't';
+use TestLib;
+use POSIX qw/setlocale LC_ALL LC_MESSAGES/;
+
+use Test::More tests => $PgCommon::rpm ? (3 + 9*@MAJORS) : (15 + 7*@MAJORS);
+
+ok (-f "/etc/os-release", "/etc/os-release exists");
+my ($os, $osversion) = os_release();
+ok (defined $os, "OS is $os");
+ok (defined $osversion, "OS version is $osversion");
+
+note "PostgreSQL versions installed: @MAJORS\n";
+my $f = $ENV{'PG_FLAVOR'} // '';
+
+if ($PgCommon::rpm) {
+ foreach my $v (@MAJORS) {
+ my $vv = $v;
+ $vv =~ s/\.//;
+
+ ok ((rpm_installed "postgresql$vv$f"), "postgresql$vv$f installed");
+ ok ((rpm_installed "postgresql$vv$f-libs"), "postgresql$vv$f-libs installed");
+ ok ((rpm_installed "postgresql$vv$f-server"), "postgresql$vv$f-server installed");
+ ok ((rpm_installed "postgresql$vv$f-contrib"), "postgresql$vv$f-contrib installed");
+ ok ((rpm_installed "postgresql$vv$f-plperl"), "postgresql$vv$f-plperl installed");
+ SKIP: {
+ skip "No python2 support", 1 unless ($v <= 12);
+ ok ((rpm_installed "postgresql$vv$f-plpython"), "postgresql$vv$f-plpython installed");
+ }
+ ok ((rpm_installed "postgresql$vv$f-plpython3"), "postgresql$vv$f-plpython3 installed");
+ ok ((rpm_installed "postgresql$vv$f-pltcl"), "postgresql$vv$f-pltcl installed");
+ ok ((rpm_installed "postgresql$vv$f-devel"), "postgresql$vv$f-devel installed");
+ }
+ exit;
+}
+
+my $docpkgs = 0;
+foreach my $v (@MAJORS) {
+ ok ((deb_installed "postgresql-$v$f"), "postgresql-$v$f installed");
+ SKIP: {
+ skip "No python2 support", 1 unless ($v <= 11 and $PgCommon::have_python2);
+ ok ((deb_installed "postgresql-plpython-$v$f"), "postgresql-plpython-$v$f installed");
+ }
+ if ($v >= '9.1') {
+ ok ((deb_installed "postgresql-plpython3-$v$f"), "postgresql-plpython3-$v$f installed");
+ } else {
+ pass "no Python 3 package for version $v";
+ }
+ ok ((deb_installed "postgresql-plperl-$v$f"), "postgresql-plperl-$v$f installed");
+ ok ((deb_installed "postgresql-pltcl-$v$f"), "postgresql-pltcl-$v$f installed");
+ ok ((deb_installed "postgresql-server-dev-$v$f"), "postgresql-server-dev-$v$f installed");
+ SKIP: {
+ skip "No postgresql-contrib-$v$f package for version $v", 1 if ($v >= 10);
+ ok ((deb_installed "postgresql-contrib-$v$f"), "postgresql-contrib-$v$f installed");
+ }
+ my $docpkg = "postgresql-doc-$v$f";
+ if (deb_installed $docpkg) {
+ note "$docpkg installed";
+ $docpkgs++;
+ }
+}
+ok $docpkgs, "At least one doc package installed";
+
+ok ((deb_installed 'libecpg-dev'), 'libecpg-dev installed');
+ok ((deb_installed 'procps'), 'procps installed');
+ok ((deb_installed 'netcat-openbsd'), 'netcat-openbsd installed');
+
+ok ((deb_installed 'hunspell-en-us'), 'hunspell-en-us installed');
+
+# check installed locales to fail tests early if they are missing
+ok ((setlocale(LC_MESSAGES, '') =~ /utf8|UTF-8/), 'system has a default UTF-8 locale');
+ok (setlocale (LC_ALL, "ru_RU"), 'locale ru_RU exists');
+ok (setlocale (LC_ALL, "ru_RU.UTF-8"), 'locale ru_RU.UTF-8 exists');
+
+my $key_file = '/etc/ssl/private/ssl-cert-snakeoil.key';
+my $pem_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem';
+ok ((getgrnam('ssl-cert'))[3] =~ /postgres/,
+ 'user postgres in the UNIX group ssl-cert');
+ok (-e $key_file, "$key_file exists");
+is (exec_as ('postgres', "cat $key_file > /dev/null"), 0, "$key_file is readable for postgres");
+ok (-e $pem_file, "$pem_file exists");
+
+# vim: filetype=perl