From 6ecee7dd83b51f6a25f98ff1600410a1bb531410 Mon Sep 17 00:00:00 2001 From: crayfishx Date: Tue, 10 Jul 2012 16:41:06 -0700 Subject: Updated rspec tests for new functionality * Removed rspec-tests for inetd * Modified existing tests to work with new evaluation of :osfamily * Added tests for Redhat/CentOS boxes * Added rspec-tests for xinetd service --- spec/classes/tftp_spec.rb | 190 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 156 insertions(+), 34 deletions(-) (limited to 'spec/classes') diff --git a/spec/classes/tftp_spec.rb b/spec/classes/tftp_spec.rb index 016130d..055f1b5 100644 --- a/spec/classes/tftp_spec.rb +++ b/spec/classes/tftp_spec.rb @@ -2,8 +2,9 @@ require 'spec_helper' describe 'tftp', :type => :class do describe 'when deploying on debian' do - let(:facts) { { :operatingsystem => 'Debian', - :path => '/usr/local/bin:/usr/bin:/bin', } } + let(:facts) { { :operatingsystem => 'Debian', + :osfamily => 'Debian', + :path => '/usr/local/bin:/usr/bin:/bin', } } it { should contain_file('/etc/default/tftpd-hpa') } it { should contain_package('tftpd-hpa') } @@ -16,8 +17,9 @@ describe 'tftp', :type => :class do end describe 'when deploying on ubuntu' do - let(:facts) { { :operatingsystem => 'Ubuntu', - :path => '/usr/local/bin:/usr/bin:/bin', } } + let(:facts) { { :operatingsystem => 'Ubuntu', + :osfamily => 'Debian', + :path => '/usr/local/bin:/usr/bin:/bin', } } it { should contain_package('tftpd-hpa') } it { should contain_file('/etc/default/tftpd-hpa') } @@ -29,43 +31,163 @@ describe 'tftp', :type => :class do }) } end - describe 'when deploying with inetd' do - let(:facts) { { :operatingsystem => 'Debian', - :path => '/usr/local/bin:/usr/bin:/bin', } } - let(:params) { { :inetd => true, } } + describe 'when deploying on redhat family' do + let (:facts) { { :osfamily => 'RedHat', + :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should contain_package('tftpd-hpa') } - it { should contain_file('/etc/default/tftpd-hpa') } - it { should contain_class('inetd') } - it { should contain_augeas('inetd_tftp').with({ - 'changes' => [ - "ins tftp after /files/etc/inetd.conf", - "set /files/etc/inetd.conf/tftp/socket dgram", - "set /files/etc/inetd.conf/tftp/protocol udp", - "set /files/etc/inetd.conf/tftp/wait wait", - "set /files/etc/inetd.conf/tftp/user tftp", - "set /files/etc/inetd.conf/tftp/command /usr/libexec/tftpd", - "set /files/etc/inetd.conf/tftp/arguments/1 tftpd", - "set /files/etc/inetd.conf/tftp/arguments/2 --address", - "set /files/etc/inetd.conf/tftp/arguments/3 0.0.0.0:69", - "set /files/etc/inetd.conf/tftp/arguments/4 --secure", - "set /files/etc/inetd.conf/tftp/arguments/5 /srv/tftp", - ], + it { should contain_package('tftpd-hpa').with({ + 'name' => 'tftp-server', }) } + it { should contain_service('tftpd-hpa').with({ - 'ensure' => 'stopped', - 'enable' => false, + 'ensure' => 'running', + 'enable' => 'true', 'hasstatus' => false, - 'provider' => nil, + 'provider' => 'base', + 'start' => '/usr/sbin/in.tftpd -l -a 0.0.0.0:69 -u nobody --secure /var/lib/tftpboot', + }) } + end + + describe 'when deploying on redhat family with custom options' do + let (:facts) { { :osfamily => 'RedHat', + :path => '/usr/local/bin:/usr/bin:/bin', } } + let (:params) { { :address => '127.0.0.1', + :port => '1069', + :username => 'root', + :options => '--secure --timeout 50', + :directory => '/tftpboot', } } + + it { should contain_package('tftpd-hpa').with({ + 'name' => 'tftp-server', + }) } + + it { should contain_service('tftpd-hpa').with({ + 'ensure' => 'running', + 'enable' => 'true', + 'hasstatus' => false, + 'provider' => 'base', + 'start' => '/usr/sbin/in.tftpd -l -a 127.0.0.1:1069 -u root --secure --timeout 50 /tftpboot', }) } end - describe 'when deploying with inetd and custom options' do - let(:facts) { { :operatingsystem => 'Debian', - :path => '/usr/local/bin:/usr/bin:/bin', } } - let(:params) { { :inetd => true, - :options => '--timeout 5 --secure', } } + describe 'when deploying with xinetd on redhat family' do + let (:facts) { { :osfamily => 'Redhat', + :path => '/usr/local/bin:/usr/bin:/bin', } } + let (:params) { { :inetd => true, } } + it { should include_class('xinetd') } + it { should contain_service('tftpd-hpa').with({ + 'ensure' => 'stopped', + 'enable' => false, + }) } + it { should contain_xinetd__service('tftp').with({ + 'port' => '69', + 'protocol' => 'udp', + 'server_args' => '--secure /var/lib/tftpboot', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'nobody', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + }) } - it { expect { should contain_class('tftp') }.to raise_error(Puppet::Error) } end + + describe 'when deploying with xinetd on ubuntu' do + let (:facts) { { :osfamily => 'Debian', + :operatingsystem => 'Ubuntu', + :path => '/usr/local/bin:/usr/bin:/bin', } } + let (:params) { { :inetd => true, } } + it { should include_class('xinetd') } + it { should contain_service('tftpd-hpa').with({ + 'ensure' => 'stopped', + 'enable' => false, + }) } + it { should contain_xinetd__service('tftp').with({ + 'port' => '69', + 'protocol' => 'udp', + 'server_args' => '--secure /var/lib/tftpboot', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'tftp', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + }) } + + end + + describe 'when deploying with xinetd on debian' do + let (:facts) { { :osfamily => 'Debian', + :operatingsystem => 'Debian', + :path => '/usr/local/bin:/usr/bin:/bin', } } + let (:params) { { :inetd => true, } } + it { should include_class('xinetd') } + it { should contain_xinetd__service('tftp').with({ + 'port' => '69', + 'protocol' => 'udp', + 'server_args' => '--secure /srv/tftp', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'tftp', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + 'bind' => '0.0.0.0', + }) } + + end + + describe 'when deploying with xinetd with custom options' do + let (:facts) { { :osfamily => 'Debian', + :operatingsystem => 'Debian', + :path => '/usr/local/bin:/usr/bin:/bin', } } + let (:params) { { :inetd => true, + :options => '--secure --timeout 50', } } + it { should include_class('xinetd') } + it { should contain_xinetd__service('tftp').with({ + 'port' => '69', + 'protocol' => 'udp', + 'server_args' => '--secure --timeout 50 /srv/tftp', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'tftp', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + 'bind' => '0.0.0.0', + }) } + + end + + describe 'when deploying with xinetd with custom settings' do + let (:facts) { { :osfamily => 'Debian', + :operatingsystem => 'Debian', + :path => '/usr/local/bin:/usr/bin:/bin', } } + let (:params) { { :inetd => true, + :port => 1069, + :address => '127.0.0.1', + :username => 'root', + :directory => '/tftpboot', } } + it { should include_class('xinetd') } + it { should contain_xinetd__service('tftp').with({ + 'port' => '1069', + 'protocol' => 'udp', + 'server_args' => '--secure /tftpboot', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'root', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + 'bind' => '127.0.0.1', + }) } + + end + end -- cgit v1.2.3 From cb8c935a010fe0935d08a73b0ca2aa91a328943e Mon Sep 17 00:00:00 2001 From: crayfishx Date: Wed, 11 Jul 2012 10:30:36 -0700 Subject: Single it block per test * as originally submitted in https://github.com/puppetlabs/puppetlabs-tftp/pull/10... * Only use one it block per test to improve performance --- spec/classes/tftp_spec.rb | 251 ++++++++++++++++++++++------------------- spec/defines/tftp_file_spec.rb | 141 +++++++++++++---------- 2 files changed, 211 insertions(+), 181 deletions(-) (limited to 'spec/classes') diff --git a/spec/classes/tftp_spec.rb b/spec/classes/tftp_spec.rb index 055f1b5..21e6f72 100644 --- a/spec/classes/tftp_spec.rb +++ b/spec/classes/tftp_spec.rb @@ -6,14 +6,16 @@ describe 'tftp', :type => :class do :osfamily => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should contain_file('/etc/default/tftpd-hpa') } - it { should contain_package('tftpd-hpa') } - it { should contain_service('tftpd-hpa').with({ - 'ensure' => 'running', - 'enable' => true, - 'hasstatus' => false, - 'provider' => nil, - }) } + it { + should contain_file('/etc/default/tftpd-hpa') + should contain_package('tftpd-hpa') + should contain_service('tftpd-hpa').with({ + 'ensure' => 'running', + 'enable' => true, + 'hasstatus' => false, + 'provider' => nil, + }) + } end describe 'when deploying on ubuntu' do @@ -21,31 +23,35 @@ describe 'tftp', :type => :class do :osfamily => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should contain_package('tftpd-hpa') } - it { should contain_file('/etc/default/tftpd-hpa') } - it { should contain_service('tftpd-hpa').with({ - 'ensure' => 'running', - 'enable' => true, - 'hasstatus' => true, - 'provider' => 'upstart', - }) } + it { + should contain_package('tftpd-hpa') + should contain_file('/etc/default/tftpd-hpa') + should contain_service('tftpd-hpa').with({ + 'ensure' => 'running', + 'enable' => true, + 'hasstatus' => true, + 'provider' => 'upstart', + }) + } end describe 'when deploying on redhat family' do let (:facts) { { :osfamily => 'RedHat', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should contain_package('tftpd-hpa').with({ - 'name' => 'tftp-server', - }) } - - it { should contain_service('tftpd-hpa').with({ - 'ensure' => 'running', - 'enable' => 'true', - 'hasstatus' => false, - 'provider' => 'base', - 'start' => '/usr/sbin/in.tftpd -l -a 0.0.0.0:69 -u nobody --secure /var/lib/tftpboot', - }) } + it { + should contain_package('tftpd-hpa').with({ + 'name' => 'tftp-server', + }) + + should contain_service('tftpd-hpa').with({ + 'ensure' => 'running', + 'enable' => 'true', + 'hasstatus' => false, + 'provider' => 'base', + 'start' => '/usr/sbin/in.tftpd -l -a 0.0.0.0:69 -u nobody --secure /var/lib/tftpboot', + }) + } end describe 'when deploying on redhat family with custom options' do @@ -57,41 +63,44 @@ describe 'tftp', :type => :class do :options => '--secure --timeout 50', :directory => '/tftpboot', } } - it { should contain_package('tftpd-hpa').with({ - 'name' => 'tftp-server', - }) } - - it { should contain_service('tftpd-hpa').with({ - 'ensure' => 'running', - 'enable' => 'true', - 'hasstatus' => false, - 'provider' => 'base', - 'start' => '/usr/sbin/in.tftpd -l -a 127.0.0.1:1069 -u root --secure --timeout 50 /tftpboot', - }) } + it { + should contain_package('tftpd-hpa').with({ + 'name' => 'tftp-server', + }) + + should contain_service('tftpd-hpa').with({ + 'ensure' => 'running', + 'enable' => 'true', + 'hasstatus' => false, + 'provider' => 'base', + 'start' => '/usr/sbin/in.tftpd -l -a 127.0.0.1:1069 -u root --secure --timeout 50 /tftpboot', + }) + } end describe 'when deploying with xinetd on redhat family' do let (:facts) { { :osfamily => 'Redhat', :path => '/usr/local/bin:/usr/bin:/bin', } } let (:params) { { :inetd => true, } } - it { should include_class('xinetd') } - it { should contain_service('tftpd-hpa').with({ - 'ensure' => 'stopped', - 'enable' => false, - }) } - it { should contain_xinetd__service('tftp').with({ - 'port' => '69', - 'protocol' => 'udp', - 'server_args' => '--secure /var/lib/tftpboot', - 'server' => '/usr/sbin/in.tftpd', - 'user' => 'nobody', - 'socket_type' => 'dgram', - 'cps' => '100 2', - 'flags' => 'IPv4', - 'per_source' => '11', - 'wait' => 'yes', - }) } - + it { + should include_class('xinetd') + should contain_service('tftpd-hpa').with({ + 'ensure' => 'stopped', + 'enable' => false, + }) + should contain_xinetd__service('tftp').with({ + 'port' => '69', + 'protocol' => 'udp', + 'server_args' => '--secure /var/lib/tftpboot', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'nobody', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + }) + } end describe 'when deploying with xinetd on ubuntu' do @@ -99,24 +108,25 @@ describe 'tftp', :type => :class do :operatingsystem => 'Ubuntu', :path => '/usr/local/bin:/usr/bin:/bin', } } let (:params) { { :inetd => true, } } - it { should include_class('xinetd') } - it { should contain_service('tftpd-hpa').with({ - 'ensure' => 'stopped', - 'enable' => false, - }) } - it { should contain_xinetd__service('tftp').with({ - 'port' => '69', - 'protocol' => 'udp', - 'server_args' => '--secure /var/lib/tftpboot', - 'server' => '/usr/sbin/in.tftpd', - 'user' => 'tftp', - 'socket_type' => 'dgram', - 'cps' => '100 2', - 'flags' => 'IPv4', - 'per_source' => '11', - 'wait' => 'yes', - }) } - + it { + should include_class('xinetd') + should contain_service('tftpd-hpa').with({ + 'ensure' => 'stopped', + 'enable' => false, + }) + should contain_xinetd__service('tftp').with({ + 'port' => '69', + 'protocol' => 'udp', + 'server_args' => '--secure /var/lib/tftpboot', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'tftp', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + }) + } end describe 'when deploying with xinetd on debian' do @@ -124,21 +134,22 @@ describe 'tftp', :type => :class do :operatingsystem => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', } } let (:params) { { :inetd => true, } } - it { should include_class('xinetd') } - it { should contain_xinetd__service('tftp').with({ - 'port' => '69', - 'protocol' => 'udp', - 'server_args' => '--secure /srv/tftp', - 'server' => '/usr/sbin/in.tftpd', - 'user' => 'tftp', - 'socket_type' => 'dgram', - 'cps' => '100 2', - 'flags' => 'IPv4', - 'per_source' => '11', - 'wait' => 'yes', - 'bind' => '0.0.0.0', - }) } - + it { + should include_class('xinetd') + should contain_xinetd__service('tftp').with({ + 'port' => '69', + 'protocol' => 'udp', + 'server_args' => '--secure /srv/tftp', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'tftp', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + 'bind' => '0.0.0.0', + }) + } end describe 'when deploying with xinetd with custom options' do @@ -147,21 +158,22 @@ describe 'tftp', :type => :class do :path => '/usr/local/bin:/usr/bin:/bin', } } let (:params) { { :inetd => true, :options => '--secure --timeout 50', } } - it { should include_class('xinetd') } - it { should contain_xinetd__service('tftp').with({ - 'port' => '69', - 'protocol' => 'udp', - 'server_args' => '--secure --timeout 50 /srv/tftp', - 'server' => '/usr/sbin/in.tftpd', - 'user' => 'tftp', - 'socket_type' => 'dgram', - 'cps' => '100 2', - 'flags' => 'IPv4', - 'per_source' => '11', - 'wait' => 'yes', - 'bind' => '0.0.0.0', - }) } - + it { + should include_class('xinetd') + should contain_xinetd__service('tftp').with({ + 'port' => '69', + 'protocol' => 'udp', + 'server_args' => '--secure --timeout 50 /srv/tftp', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'tftp', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + 'bind' => '0.0.0.0', + }) + } end describe 'when deploying with xinetd with custom settings' do @@ -173,21 +185,22 @@ describe 'tftp', :type => :class do :address => '127.0.0.1', :username => 'root', :directory => '/tftpboot', } } - it { should include_class('xinetd') } - it { should contain_xinetd__service('tftp').with({ - 'port' => '1069', - 'protocol' => 'udp', - 'server_args' => '--secure /tftpboot', - 'server' => '/usr/sbin/in.tftpd', - 'user' => 'root', - 'socket_type' => 'dgram', - 'cps' => '100 2', - 'flags' => 'IPv4', - 'per_source' => '11', - 'wait' => 'yes', - 'bind' => '127.0.0.1', - }) } - + it { + should include_class('xinetd') + should contain_xinetd__service('tftp').with({ + 'port' => '1069', + 'protocol' => 'udp', + 'server_args' => '--secure /tftpboot', + 'server' => '/usr/sbin/in.tftpd', + 'user' => 'root', + 'socket_type' => 'dgram', + 'cps' => '100 2', + 'flags' => 'IPv4', + 'per_source' => '11', + 'wait' => 'yes', + 'bind' => '127.0.0.1', + }) + } end end diff --git a/spec/defines/tftp_file_spec.rb b/spec/defines/tftp_file_spec.rb index 84c9e33..1ad62d8 100644 --- a/spec/defines/tftp_file_spec.rb +++ b/spec/defines/tftp_file_spec.rb @@ -9,14 +9,16 @@ describe 'tftp::file' do :osfamily => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should include_class('tftp') } - it { should contain_file('/srv/tftp/sample').with({ - 'ensure' => 'file', - 'owner' => 'tftp', - 'group' => 'tftp', - 'mode' => '0644', - 'recurse' => false, - }) } + it { + should include_class('tftp') + should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'file', + 'owner' => 'tftp', + 'group' => 'tftp', + 'mode' => '0644', + 'recurse' => false, + }) + } end describe 'when deploying on ubuntu' do @@ -24,14 +26,16 @@ describe 'tftp::file' do :osfamily => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should include_class('tftp') } - it { should contain_file('/var/lib/tftpboot/sample').with({ - 'ensure' => 'file', - 'owner' => 'tftp', - 'group' => 'tftp', - 'mode' => '0644', - 'recurse' => false, - }) } + it { + should include_class('tftp') + should contain_file('/var/lib/tftpboot/sample').with({ + 'ensure' => 'file', + 'owner' => 'tftp', + 'group' => 'tftp', + 'mode' => '0644', + 'recurse' => false, + }) + } end describe 'when deploying with parameters' do @@ -44,14 +48,16 @@ describe 'tftp::file' do :osfamily => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should include_class('tftp') } - it { should contain_file('/srv/tftp/sample').with({ - 'ensure' => 'directory', - 'owner' => 'root', - 'group' => 'root', - 'mode' => '0755', - 'recurse' => true, - }) } + it { + should include_class('tftp') + should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'directory', + 'owner' => 'root', + 'group' => 'root', + 'mode' => '0755', + 'recurse' => true, + }) + } end describe 'when deploying without recurse parameters' do @@ -59,14 +65,16 @@ describe 'tftp::file' do :osfamily => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should include_class('tftp') } - it { should contain_file('/srv/tftp/sample').with({ - 'ensure' => 'file', - 'recurse' => false, - 'purge' => nil, - 'replace' => nil, - 'recurselimit' => nil, - }) } + it { + should include_class('tftp') + should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'file', + 'recurse' => false, + 'purge' => nil, + 'replace' => nil, + 'recurselimit' => nil, + }) + } end describe 'when deploying with recurse parameters' do @@ -80,17 +88,19 @@ describe 'tftp::file' do :osfamily => 'Debian', :path => '/usr/local/bin:/usr/bin:/bin', }} - it { should include_class('tftp') } - it { should contain_file('/srv/tftp/sample').with({ - 'ensure' => 'directory', - 'owner' => 'tftp', - 'group' => 'tftp', - 'mode' => '0755', - 'recurse' => true, - 'recurselimit' => 42, - 'purge' => true, - 'replace' => false, - }) } + it { + should include_class('tftp') + should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'directory', + 'owner' => 'tftp', + 'group' => 'tftp', + 'mode' => '0755', + 'recurse' => true, + 'recurselimit' => 42, + 'purge' => true, + 'replace' => false, + }) + } end describe 'when deploying directory' do @@ -101,12 +111,14 @@ describe 'tftp::file' do :caller_module_name => 'acme', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should include_class('tftp') } - it { should contain_file('/srv/tftp/sample').with({ - 'ensure' => 'directory', - 'mode' => '0755', - 'source' => nil, - }) } + it { + should include_class('tftp') + should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'directory', + 'mode' => '0755', + 'source' => nil, + }) + } end describe 'when deploying file from another module' do @@ -117,12 +129,14 @@ describe 'tftp::file' do :caller_module_name => 'acme', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should include_class('tftp') } - it { should contain_file('/srv/tftp/sample').with({ - 'ensure' => 'file', - 'mode' => '0755', - 'source' => 'puppet:///modules/acme/sample' - }) } + it { + should include_class('tftp') + should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'file', + 'mode' => '0755', + 'source' => 'puppet:///modules/acme/sample' + }) + } end describe 'when deploying file with content' do @@ -134,12 +148,15 @@ describe 'tftp::file' do :caller_module_name => 'acme', :path => '/usr/local/bin:/usr/bin:/bin', } } - it { should include_class('tftp') } - it { should contain_file('/srv/tftp/sample').with({ - 'ensure' => 'file', - 'mode' => '0755', - 'content' => 'hi', - 'source' => nil, - }) } + it { + should include_class('tftp') + should contain_file('/srv/tftp/sample').with({ + 'ensure' => 'file', + 'mode' => '0755', + 'content' => 'hi', + 'source' => nil, + }) + } end + end -- cgit v1.2.3