From cc2f9c72987f84343fc382d8ab45717a7dfff0cd Mon Sep 17 00:00:00 2001 From: Chris Butler Date: Mon, 30 Jan 2017 16:25:04 +0000 Subject: [PATCH] add acceptance test for setting gid --- spec/acceptance/firewall_gid_spec.rb | 104 +++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 spec/acceptance/firewall_gid_spec.rb diff --git a/spec/acceptance/firewall_gid_spec.rb b/spec/acceptance/firewall_gid_spec.rb new file mode 100644 index 0000000..1730e29 --- /dev/null +++ b/spec/acceptance/firewall_gid_spec.rb @@ -0,0 +1,104 @@ +require 'spec_helper_acceptance' + +describe 'firewall gid' do + before :all do + iptables_flush_all_tables + ip6tables_flush_all_tables + end + + describe "gid tests" do + context 'gid set to root' do + it 'applies' do + pp = <<-EOS + class { '::firewall': } + firewall { '801 - test': + chain => 'OUTPUT', + action => accept, + gid => 'root', + proto => 'all', + } + EOS + + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => do_catch_changes) + end + + it 'should contain the rule' do + shell('iptables-save') do |r| + expect(r.stdout).to match(/-A OUTPUT -m owner --gid-owner (0|root) -m comment --comment "801 - test" -j ACCEPT/) + end + end + end + + context 'gid set to !root' do + it 'applies' do + pp = <<-EOS + class { '::firewall': } + firewall { '802 - test': + chain => 'OUTPUT', + action => accept, + gid => '!root', + proto => 'all', + } + EOS + + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => do_catch_changes) + end + + it 'should contain the rule' do + shell('iptables-save') do |r| + expect(r.stdout).to match(/-A OUTPUT -m owner ! --gid-owner (0|root) -m comment --comment "802 - test" -j ACCEPT/) + end + end + end + + context 'gid set to 0' do + it 'applies' do + pp = <<-EOS + class { '::firewall': } + firewall { '803 - test': + chain => 'OUTPUT', + action => accept, + gid => '0', + proto => 'all', + } + EOS + + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => do_catch_changes) + end + + it 'should contain the rule' do + shell('iptables-save') do |r| + expect(r.stdout).to match(/-A OUTPUT -m owner --gid-owner (0|root) -m comment --comment "803 - test" -j ACCEPT/) + end + end + end + + context 'gid set to !0' do + it 'applies' do + pp = <<-EOS + class { '::firewall': } + firewall { '804 - test': + chain => 'OUTPUT', + action => accept, + gid => '!0', + proto => 'all', + } + EOS + + apply_manifest(pp, :catch_failures => true) + apply_manifest(pp, :catch_changes => do_catch_changes) + end + + it 'should contain the rule' do + shell('iptables-save') do |r| + expect(r.stdout).to match(/-A OUTPUT -m owner ! --gid-owner (0|root) -m comment --comment "804 - test" -j ACCEPT/) + end + end + end + + end + +end -- 2.45.2