Skip to content

Commit

Permalink
Merge pull request #2 from ekohl/run-acceptance-tests
Browse files Browse the repository at this point in the history
Run acceptance tests
  • Loading branch information
daberkow authored Jun 6, 2024
2 parents 4ee04f5 + 3186f6f commit c504497
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 28 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,6 @@ concurrency:
jobs:
puppet:
name: Puppet
uses: voxpupuli/gha-puppet/.github/workflows/basic.yml@v1
uses: voxpupuli/gha-puppet/.github/workflows/beaker.yml@v2
with:
beaker_hypervisor: 'vagrant_libvirt'
4 changes: 4 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ end

group :system_tests do
gem 'voxpupuli-acceptance', '~> 3.0', :require => false
# https://github.com/voxpupuli/beaker-vagrant/pull/80
gem 'beaker-vagrant', github: 'ekohl/beaker-vagrant', branch: 'shorter-directory-names', require: false
# https://github.com/voxpupuli/beaker-hostgenerator/pull/353
gem 'beaker-hostgenerator', github: 'ekohl/beaker-hostgenerator', branch: 'use-latest-centos-images-on-vagrant', require: false
end

group :release do
Expand Down
6 changes: 2 additions & 4 deletions metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,8 @@
{
"operatingsystem": "Fedora",
"operatingsystemrelease": [
"30",
"31",
"32",
"33"
"38",
"39"
]
},
{
Expand Down
6 changes: 3 additions & 3 deletions spec/acceptance/class_disabled_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class { 'selinux': mode => 'permissive' }
end

context 'when switching from enforcing to disabled' do
let(:pp) do
let(:manifest) do
<<-EOS
class { 'selinux': mode => 'disabled' }
EOS
Expand Down Expand Up @@ -75,7 +75,7 @@ class { 'selinux': mode => 'disabled' }
end

it 'applies without changes' do
apply_manifest(pp, catch_changes: true)
apply_manifest(manifest, catch_changes: true)
end

describe command('getenforce') do
Expand Down Expand Up @@ -120,7 +120,7 @@ class { 'selinux': mode => 'permissive' }
end

it 'applies without changes' do
apply_manifest(pp, catch_changes: true)
apply_manifest(manifest, catch_changes: true)
end

describe command('getenforce') do
Expand Down
41 changes: 21 additions & 20 deletions spec/acceptance/class_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ class { 'selinux': mode => 'enforcing' }
selinux::permissive { 'puppet_selinux_test_policy_t': }
selinux::port { 'puppet_selinux_test_policy_port_t/tcp':
seltype => 'puppet_selinux_test_policy_port_t',
port => 55555,
seltype => 'puppet_selinux_test_policy_port_t',
port => 55555,
protocol => 'tcp',
}
}
# just something simple I found via Google:
file {'/tmp/selinux_simple_policy.te':
file { '/tmp/selinux_simple_policy.te':
ensure => 'file',
content => @("EOF")
module puppet_selinux_simple_policy 1.0;
Expand All @@ -40,7 +40,7 @@ class file { read getattr };
| EOF
}
file {'/tmp/selinux_test_policy.te':
file { '/tmp/selinux_test_policy.te':
ensure => 'file',
content => @("EOF")
policy_module(puppet_selinux_test_policy, 1.0.0)
Expand All @@ -56,48 +56,49 @@ class file { read getattr };
selinux::module { 'puppet_selinux_simple_policy':
source_te => 'file:///tmp/selinux_simple_policy.te',
builder => 'simple',
require => File['/tmp/selinux_simple_policy.te']
require => File['/tmp/selinux_simple_policy.te'],
}
selinux::module { 'puppet_selinux_test_policy':
source_te => 'file:///tmp/selinux_test_policy.te',
builder => 'refpolicy',
require => File['/tmp/selinux_test_policy.te']
source_te => 'file:///tmp/selinux_test_policy.te',
builder => 'refpolicy',
require => File['/tmp/selinux_test_policy.te'],
}
if $have_selinux_ruby_library {
Class['selinux'] ->
file { '/tmp/test_selinux_fcontext':
content => 'TEST',
seltype => 'puppet_selinux_test_policy_exec_t',
require => Class['selinux'],
}
selinux::fcontext {'/tmp/fcontexts_source(/.*)?':
selinux::fcontext { '/tmp/fcontexts_source(/.*)?':
seltype => 'puppet_selinux_test_policy_exec_t',
}
selinux::fcontext::equivalence {'/tmp/fcontexts_equivalent':
selinux::fcontext::equivalence { '/tmp/fcontexts_equivalent':
target => '/tmp/fcontexts_source',
}
file {['/tmp/fcontexts_source', '/tmp/fcontexts_equivalent']:
ensure => 'directory',
ensure => 'directory',
require => [Selinux::Fcontext['/tmp/fcontexts_source(/.*)?'], Selinux::Fcontext::Equivalence['/tmp/fcontexts_equivalent']],
}
file {['/tmp/fcontexts_source/define_test', '/tmp/fcontexts_equivalent/define_test']:
ensure => file,
notify => Exec["/sbin/restorecon -FR /tmp/fcontexts_*"]
file { ['/tmp/fcontexts_source/define_test', '/tmp/fcontexts_equivalent/define_test']:
ensure => file,
notify => Exec['/sbin/restorecon -FR /tmp/fcontexts_*'],
}
exec {'/sbin/restorecon -FR /tmp/fcontexts_*':
# this is needed because puppet creates files with the wrong context as
# it runs unconfined and only becomes idempotent after the second run.
exec { '/sbin/restorecon -FR /tmp/fcontexts_*':
# this is needed because puppet creates files with the wrong context as
# it runs unconfined and only becomes idempotent after the second run.
refreshonly => true,
}
# test purging
resources {['selinux_fcontext', 'selinux_fcontext_equivalence']: purge => true }
resources { ['selinux_fcontext', 'selinux_fcontext_equivalence']:
purge => true,
}
}
EOS
end
Expand Down

0 comments on commit c504497

Please sign in to comment.