From bf6a653e0b143f01944779ad33587b55fa3cbef3 Mon Sep 17 00:00:00 2001 From: Imran Iqbal Date: Thu, 2 May 2019 01:29:47 +0100 Subject: [PATCH] test(inspec): add tests for multiple ports and postgres versions * Fix `opensuse-leap-15` (enable `suse` and workaround `service` bug) * Use port `5433` for `debian` and `opensuse-leap-15` * Use upstream repo version `10` for `debian` --- test/integration/default/controls/command_spec.rb | 9 ++++++++- test/integration/default/controls/services_spec.rb | 11 ++++++++++- test/integration/default/inspec.yml | 1 + test/salt/pillar/postgres.sls | 9 +++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/test/integration/default/controls/command_spec.rb b/test/integration/default/controls/command_spec.rb index 347e84a..3ab7035 100644 --- a/test/integration/default/controls/command_spec.rb +++ b/test/integration/default/controls/command_spec.rb @@ -1,7 +1,14 @@ +# Overide by OS +pg_port = '5432' +if os[:family] == 'debian' or os[:name] == 'suse' + pg_port = '5433' +end + control 'Postgres command' do title 'should match desired lines' - describe command(%q{su - postgres -c 'psql -qtc "\l+ db2"'}) do + # Can't use `%Q` here due to the `\` + describe command(%q{su - postgres -c 'psql -p} + pg_port + %q{ -qtc "\l+ db2"'}) do its(:stdout) { should match(/.*db2.*my_space/) } # its(:stdout) { should match(/db2.*remoteUser.*UTF8.*en_US\.UTF-8.*en_US\.UTF-8.*my_space/) } end diff --git a/test/integration/default/controls/services_spec.rb b/test/integration/default/controls/services_spec.rb index 3d9f0ae..d70329d 100644 --- a/test/integration/default/controls/services_spec.rb +++ b/test/integration/default/controls/services_spec.rb @@ -1,9 +1,17 @@ # Overide by OS service_name = 'postgresql' +pg_port = 5432 if os[:name] == 'centos' and os[:release].start_with?('6') service_name = 'postgresql-9.6' +elsif os[:family] == 'debian' or os[:name] == 'suse' + pg_port = 5433 end +# Temporary `if` due to `opensuse-leap-15` bug re: `service` +if os[:name] == 'suse' + puts "[Skip `service`-based tests due to `opensuse-leap-15` detection bug (see https://github.com/inspec/train/issues/377)]" + puts "[Skip `service`-based tests due to `opensuse-leap-15` bug]" +else control 'Postgres service' do impact 0.5 title 'should be running and enabled' @@ -13,7 +21,8 @@ control 'Postgres service' do it { should be_running } end - describe port(5432) do + describe port(pg_port) do it { should be_listening } end end +end diff --git a/test/integration/default/inspec.yml b/test/integration/default/inspec.yml index 4e5595b..6fec42b 100644 --- a/test/integration/default/inspec.yml +++ b/test/integration/default/inspec.yml @@ -9,3 +9,4 @@ supports: - os-name: centos - os-name: fedora - os-name: opensuse + - os-name: suse diff --git a/test/salt/pillar/postgres.sls b/test/salt/pillar/postgres.sls index e803bf3..2c55bfb 100644 --- a/test/salt/pillar/postgres.sls +++ b/test/salt/pillar/postgres.sls @@ -1,6 +1,11 @@ # Port to use for the cluster -- can be used to provide a non-standard port # NOTE: If already set in the minion config, that value takes priority + +{%- if not (grains.os_family == 'Debian' or grains.osfinger == 'Leap-15') %} postgres.port: '5432' +{%- else %} +postgres.port: '5433' +{%- endif %} postgres: # UPSTREAM REPO @@ -10,7 +15,11 @@ postgres: {%- else %} use_upstream_repo: True # Version to install from upstream repository (if upstream_repo: True) + {%- if not (grains.os_family == 'Debian') %} version: '9.6' + {%- else %} + version: '10' + {%- endif %} # # Set True to add a file in /etc/profile.d adding the bin dir in $PATH # # as packages from upstream put them somewhere like /usr/pgsql-10/bin # add_profile: False