diff --git a/spec/acceptance/backup_spec.rb b/spec/acceptance/backup_spec.rb index 156776d..1989f44 100644 --- a/spec/acceptance/backup_spec.rb +++ b/spec/acceptance/backup_spec.rb @@ -1,49 +1,60 @@ require 'spec_helper_acceptance' describe 'concat backup parameter' do + basedir = default.tmpdir('concat') context '=> puppet' do - before :all do - shell('rm -rf /tmp/concat') - shell('mkdir -p /tmp/concat') - shell("/bin/echo 'old contents' > /tmp/concat/file") + before(:all) do + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + file { '#{basedir}/file': + content => "old contents\n", + } + EOS + apply_manifest(pp) end - pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': backup => 'puppet', } concat::fragment { 'new file': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => 'new contents', } EOS it 'applies the manifest twice with "Filebucketed" stdout and no stderr' do apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/Filebucketed \/tmp\/concat\/file to puppet with sum 0140c31db86293a1a1e080ce9b91305f/) # sum is for file contents of 'old contents' + expect(r.stdout).to match(/Filebucketed #{basedir}\/file to puppet with sum 0140c31db86293a1a1e080ce9b91305f/) # sum is for file contents of 'old contents' end apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain 'new contents' } end end context '=> .backup' do - before :all do - shell('rm -rf /tmp/concat') - shell('mkdir -p /tmp/concat') - shell("/bin/echo 'old contents' > /tmp/concat/file") + before(:all) do + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + file { '#{basedir}/file': + content => "old contents\n", + } + EOS + apply_manifest(pp) end - pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': backup => '.backup', } concat::fragment { 'new file': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => 'new contents', } EOS @@ -55,11 +66,11 @@ describe 'concat backup parameter' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain 'new contents' } end - describe file('/tmp/concat/file.backup') do + describe file("#{basedir}/file.backup") do it { should be_file } it { should contain 'old contents' } end @@ -68,18 +79,23 @@ describe 'concat backup parameter' do # XXX The backup parameter uses validate_string() and thus can't be the # boolean false value, but the string 'false' has the same effect in Puppet 3 context "=> 'false'" do - before :all do - shell('rm -rf /tmp/concat') - shell('mkdir -p /tmp/concat') - shell("/bin/echo 'old contents' > /tmp/concat/file") + before(:all) do + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + file { '#{basedir}/file': + content => "old contents\n", + } + EOS + apply_manifest(pp) end - pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': backup => '.backup', } concat::fragment { 'new file': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => 'new contents', } EOS @@ -91,7 +107,7 @@ describe 'concat backup parameter' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain 'new contents' } end diff --git a/spec/acceptance/concat_spec.rb b/spec/acceptance/concat_spec.rb index 72981e6..31c1647 100644 --- a/spec/acceptance/concat_spec.rb +++ b/spec/acceptance/concat_spec.rb @@ -17,6 +17,7 @@ end describe 'basic concat test' do basedir = default.tmpdir('concat') + safe_basedir = basedir.gsub('/','_') shared_examples 'successfully_applied' do |pp| it 'applies the manifest twice with no stderr' do @@ -28,47 +29,69 @@ describe 'basic concat test' do it { should be_directory } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 755 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 755 + } end - describe file("#{default['puppetvardir']}/concat/bin") do + describe file("#{default['puppetvardir']}/concat/bin") do it { should be_directory } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 755 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 755 + } end describe file("#{default['puppetvardir']}/concat/bin/concatfragments.sh") do it { should be_file } it { should be_owned_by username } #it { should be_grouped_into groupname } - it { should be_mode 755 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 755 + } end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file") do + describe file("#{default['puppetvardir']}/concat/#{safe_basedir}_file") do it { should be_directory } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 750 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 750 + } end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments") do + describe file("#{default['puppetvardir']}/concat/#{safe_basedir}_file/fragments") do it { should be_directory } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 750 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 750 + } end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments.concat") do + describe file("#{default['puppetvardir']}/concat/#{safe_basedir}_file/fragments.concat") do it { should be_file } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 640 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 640 + } end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments.concat.out") do + describe file("#{default['puppetvardir']}/concat/#{safe_basedir}_file/fragments.concat.out") do it { should be_file } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 640 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 640 + } end end context 'owner/group root' do + before(:all) do + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + EOS + apply_manifest(pp) + end pp = <<-EOS concat { '#{basedir}/file': owner => '#{username}', @@ -91,30 +114,44 @@ describe 'basic concat test' do it_behaves_like 'successfully_applied', pp - describe file('#{basedir}/file') do + describe file("#{basedir}/file") do it { should be_file } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 644 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 644 + } it { should contain '1' } it { should contain '2' } end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/01_1") do + describe file("#{default['puppetvardir']}/concat/#{safe_basedir}_file/fragments/01_1") do it { should be_file } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 640 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 640 + } end - describe file("#{default['puppetvardir']}/concat/_tmp_concat_file/fragments/02_2") do + describe file("#{default['puppetvardir']}/concat/#{safe_basedir}_file/fragments/02_2") do it { should be_file } it { should be_owned_by username } it { should be_grouped_into groupname } - it { should be_mode 640 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 640 + } end end context 'ensure' do context 'works when set to present with path set' do + before(:all) do + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + EOS + apply_manifest(pp) + end pp=" concat { 'file': ensure => present, @@ -130,13 +167,23 @@ describe 'basic concat test' do it_behaves_like 'successfully_applied', pp - describe file('#{basedir}/file') do + describe file("#{basedir}/file") do it { should be_file } - it { should be_mode 644 } + it("should be mode", :unless => (fact('osfamily') == 'AIX')) { + should be_mode 644 + } it { should contain '1' } end end context 'works when set to absent with path set' do + before(:all) do + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + EOS + apply_manifest(pp) + end pp=" concat { 'file': ensure => absent, @@ -150,14 +197,12 @@ describe 'basic concat test' do } " - # Can't used shared examples as this will always trigger the exec when - # absent is set. it 'applies the manifest twice with no stderr' do apply_manifest(pp, :catch_failures => true) apply_manifest(pp, :catch_changes => true) end - describe file('#{basedir}/file') do + describe file("#{basedir}/file") do it { should_not be_file } end end diff --git a/spec/acceptance/empty_spec.rb b/spec/acceptance/empty_spec.rb index 0a7ac86..dc57cb7 100644 --- a/spec/acceptance/empty_spec.rb +++ b/spec/acceptance/empty_spec.rb @@ -1,11 +1,10 @@ require 'spec_helper_acceptance' describe 'concat force empty parameter' do + basedir = default.tmpdir('concat') context 'should run successfully' do pp = <<-EOS - concat { '/tmp/concat/file': - owner => root, - group => root, + concat { '#{basedir}/file': mode => '0644', force => true, } @@ -16,7 +15,7 @@ describe 'concat force empty parameter' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should_not contain '1\n2' } end diff --git a/spec/acceptance/fragment_source_spec.rb b/spec/acceptance/fragment_source_spec.rb index 3c4d9ae..f3bbfcc 100644 --- a/spec/acceptance/fragment_source_spec.rb +++ b/spec/acceptance/fragment_source_spec.rb @@ -48,7 +48,7 @@ describe 'concat::fragment source' do apply_manifest(pp, :catch_changes => true) end - describe file('#{basedir}/foo') do + describe file("#{basedir}/foo") do it { should be_file } it { should contain 'file1 contents' } it { should contain 'string1 contents' } @@ -104,17 +104,17 @@ describe 'concat::fragment source' do apply_manifest(pp, :catch_failures => true) apply_manifest(pp, :catch_changes => true) end - describe file('#{basedir}/result_file1') do + describe file("#{basedir}/result_file1") do it { should be_file } it { should contain 'file1 contents' } it { should_not contain 'file2 contents' } end - describe file('#{basedir}/result_file2') do + describe file("#{basedir}/result_file2") do it { should be_file } it { should contain 'file2 contents' } it { should_not contain 'file1 contents' } end - describe file('#{basedir}/result_file3') do + describe file("#{basedir}/result_file3") do it { should be_file } it { should contain 'file1 contents' } it { should_not contain 'file2 contents' } @@ -139,7 +139,7 @@ describe 'concat::fragment source' do it 'applies the manifest with resource failures' do apply_manifest(pp, :expect_failures => true) end - describe file('#{basedir}/fail_no_source') do + describe file("#{basedir}/fail_no_source") do #FIXME: Serverspec::Type::File doesn't support exists? for some reason. so... hack. it { should_not be_file } it { should_not be_directory } diff --git a/spec/acceptance/newline_spec.rb b/spec/acceptance/newline_spec.rb index d0801ee..5554962 100644 --- a/spec/acceptance/newline_spec.rb +++ b/spec/acceptance/newline_spec.rb @@ -1,17 +1,27 @@ require 'spec_helper_acceptance' describe 'concat ensure_newline parameter' do + basedir = default.tmpdir('concat') context '=> false' do + before(:all) do + pp = <<-EOS + file { '#{basedir}': + ensure => directory + } + EOS + + apply_manifest(pp) + end pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': ensure_newline => false, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', } EOS @@ -21,7 +31,7 @@ describe 'concat ensure_newline parameter' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain '12' } end @@ -29,15 +39,15 @@ describe 'concat ensure_newline parameter' do context '=> true' do pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': ensure_newline => true, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', } EOS @@ -45,11 +55,9 @@ describe 'concat ensure_newline parameter' do it 'applies the manifest twice with no stderr' do apply_manifest(pp, :catch_failures => true) apply_manifest(pp, :catch_changes => true) - #XXX ensure_newline => true causes changes on every run because the files - #are modified in place. end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain "1\n2\n" } end diff --git a/spec/acceptance/nodesets/centos-64-x64.yml b/spec/acceptance/nodesets/centos-64-x64.yml index 05540ed..0639835 100644 --- a/spec/acceptance/nodesets/centos-64-x64.yml +++ b/spec/acceptance/nodesets/centos-64-x64.yml @@ -7,4 +7,4 @@ HOSTS: box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box hypervisor : vagrant CONFIG: - type: foss + type: git diff --git a/spec/acceptance/nodesets/default.yml b/spec/acceptance/nodesets/default.yml index ae812b0..0639835 100644 --- a/spec/acceptance/nodesets/default.yml +++ b/spec/acceptance/nodesets/default.yml @@ -1,10 +1,10 @@ HOSTS: - centos-64-x64.localdomain: + centos-64-x64: roles: - master platform: el-6-x86_64 - box : centos-65-x64-virtualbox-nocm - box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-65-x64-virtualbox-nocm.box + box : centos-64-x64-vbox4210-nocm + box_url : http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box hypervisor : vagrant CONFIG: - type: foss + type: git diff --git a/spec/acceptance/nodesets/fedora-18-x64.yml b/spec/acceptance/nodesets/fedora-18-x64.yml index 1361649..624b537 100644 --- a/spec/acceptance/nodesets/fedora-18-x64.yml +++ b/spec/acceptance/nodesets/fedora-18-x64.yml @@ -7,4 +7,4 @@ HOSTS: box_url : http://puppet-vagrant-boxes.puppetlabs.com/fedora-18-x64-vbox4210-nocm.box hypervisor : vagrant CONFIG: - type: foss + type: git diff --git a/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml b/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml index 5ca1514..5047017 100644 --- a/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml +++ b/spec/acceptance/nodesets/ubuntu-server-10044-x64.yml @@ -7,4 +7,4 @@ HOSTS: box_url : http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-10044-x64-vbox4210-nocm.box hypervisor : vagrant CONFIG: - type: foss + type: git diff --git a/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml b/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml index d065b30..1c7a34c 100644 --- a/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml +++ b/spec/acceptance/nodesets/ubuntu-server-12042-x64.yml @@ -7,4 +7,4 @@ HOSTS: box_url : http://puppet-vagrant-boxes.puppetlabs.com/ubuntu-server-12042-x64-vbox4210-nocm.box hypervisor : vagrant CONFIG: - type: foss + type: git diff --git a/spec/acceptance/order_spec.rb b/spec/acceptance/order_spec.rb index 5d90549..fd7b05b 100644 --- a/spec/acceptance/order_spec.rb +++ b/spec/acceptance/order_spec.rb @@ -1,26 +1,23 @@ require 'spec_helper_acceptance' describe 'concat order' do - before(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - shell('mkdir -p /tmp/concat') - end + basedir = default.tmpdir('concat') context '=> alpha' do pp = <<-EOS - concat { '/tmp/concat/foo': + concat { '#{basedir}/foo': order => 'alpha' } concat::fragment { '1': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string1', } concat::fragment { '2': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string2', } concat::fragment { '10': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string10', } EOS @@ -30,27 +27,30 @@ describe 'concat order' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/foo') do + describe file("#{basedir}/foo") do it { should be_file } - it { should contain "string10\nstring1\nsring2" } + #XXX Solaris 10 doesn't support multi-line grep + it("should contain string10\nstring1\nsring2", :unless => (fact('osfamily') == 'Solaris')) { + should contain "string10\nstring1\nsring2" + } end end context '=> numeric' do pp = <<-EOS - concat { '/tmp/concat/foo': + concat { '#{basedir}/foo': order => 'numeric' } concat::fragment { '1': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string1', } concat::fragment { '2': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string2', } concat::fragment { '10': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string10', } EOS @@ -60,34 +60,34 @@ describe 'concat order' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/foo') do + describe file("#{basedir}/foo") do it { should be_file } - it { should contain "string1\nstring2\nsring10" } + #XXX Solaris 10 doesn't support multi-line grep + it("should contain string1\nstring2\nsring10", :unless => (fact('osfamily') == 'Solaris')) { + should contain "string1\nstring2\nsring10" + } end end end # concat order describe 'concat::fragment order' do - before(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - shell('mkdir -p /tmp/concat') - end + basedir = default.tmpdir('concat') context '=> reverse order' do pp = <<-EOS - concat { '/tmp/concat/foo': } + concat { '#{basedir}/foo': } concat::fragment { '1': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string1', order => '15', } concat::fragment { '2': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string2', # default order 10 } concat::fragment { '3': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string3', order => '1', } @@ -98,27 +98,30 @@ describe 'concat::fragment order' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/foo') do + describe file("#{basedir}/foo") do it { should be_file } - it { should contain "string3\nstring2\nsring1" } + #XXX Solaris 10 doesn't support multi-line grep + it("should contain string3\nstring2\nsring1", :unless => (fact('osfamily') == 'Solaris')) { + should contain "string3\nstring2\nsring1" + } end end context '=> normal order' do pp = <<-EOS - concat { '/tmp/concat/foo': } + concat { '#{basedir}/foo': } concat::fragment { '1': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string1', order => '01', } concat::fragment { '2': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string2', order => '02' } concat::fragment { '3': - target => '/tmp/concat/foo', + target => '#{basedir}/foo', content => 'string3', order => '03', } @@ -129,9 +132,12 @@ describe 'concat::fragment order' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/foo') do + describe file("#{basedir}/foo") do it { should be_file } - it { should contain "string1\nstring2\nsring3" } + #XXX Solaris 10 doesn't support multi-line grep + it("should contain string1\nstring2\nsring3", :unless => (fact('osfamily') == 'Solaris')) { + should contain "string1\nstring2\nsring3" + } end end end # concat::fragment order diff --git a/spec/acceptance/replace_spec.rb b/spec/acceptance/replace_spec.rb index 39dd548..c200cb2 100644 --- a/spec/acceptance/replace_spec.rb +++ b/spec/acceptance/replace_spec.rb @@ -1,28 +1,32 @@ require 'spec_helper_acceptance' describe 'replacement of' do + basedir = default.tmpdir('concat') context 'file' do context 'should not succeed' do before(:all) do - shell('mkdir -p /tmp/concat') - shell('echo "file exists" > /tmp/concat/file') + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + file { '#{basedir}/file': + content => "file exists\n" + } + EOS + apply_manifest(pp) end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': replace => false, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', } EOS @@ -32,7 +36,7 @@ describe 'replacement of' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain 'file exists' } it { should_not contain '1' } @@ -42,25 +46,28 @@ describe 'replacement of' do context 'should succeed' do before(:all) do - shell('mkdir -p /tmp/concat') - shell('echo "file exists" > /tmp/concat/file') + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + file { '#{basedir}/file': + content => "file exists\n" + } + EOS + apply_manifest(pp) end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': replace => true, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', } EOS @@ -70,7 +77,7 @@ describe 'replacement of' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should_not contain 'file exists' } it { should contain '1' } @@ -85,25 +92,30 @@ describe 'replacement of' do # when using ensure => present and source => ... but it will not when using # ensure => present and content => ...; this is somewhat confusing behavior before(:all) do - shell('mkdir -p /tmp/concat') - shell('ln -s /tmp/concat/dangling /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + file { '#{basedir}/file': + ensure => link, + target => '#{basedir}/dangling', + } + EOS + apply_manifest(pp) end pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': replace => false, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', } EOS @@ -113,11 +125,12 @@ describe 'replacement of' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do - it { should be_linked_to '/tmp/concat/dangling' } + # XXX specinfra doesn't support be_linked_to on AIX + describe file("#{basedir}/file"), :unless => (fact("osfamily") == "AIX") do + it { should be_linked_to "#{basedir}/dangling" } end - describe file('/tmp/concat/dangling') do + describe file("#{basedir}/dangling") do # XXX serverspec does not have a matcher for 'exists' it { should_not be_file } it { should_not be_directory } @@ -129,25 +142,30 @@ describe 'replacement of' do # when using ensure => present and source => ... but it will not when using # ensure => present and content => ...; this is somewhat confusing behavior before(:all) do - shell('mkdir -p /tmp/concat') - shell('ln -s /tmp/concat/dangling /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + file { '#{basedir}/file': + ensure => link, + target => '#{basedir}/dangling', + } + EOS + apply_manifest(pp) end pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': replace => true, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', } EOS @@ -157,7 +175,7 @@ describe 'replacement of' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain '1' } it { should contain '2' } @@ -168,22 +186,26 @@ describe 'replacement of' do context 'directory' do context 'should not succeed' do before(:all) do - shell('mkdir -p /tmp/concat/file') + pp = <<-EOS + file { '#{basedir}': + ensure => directory, + } + file { '#{basedir}/file': + ensure => directory, + } + EOS + apply_manifest(pp) end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - pp = <<-EOS - concat { '/tmp/concat/file': } + concat { '#{basedir}/file': } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', } EOS @@ -193,7 +215,7 @@ describe 'replacement of' do expect(apply_manifest(pp, :expect_failures => true).stderr).to match(/change from directory to file failed/) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_directory } end end @@ -204,25 +226,18 @@ describe 'replacement of' do # changed, extended, or a new param introduced to control directory # replacement. context 'should succeed', :pending => 'not yet implemented' do - before(:all) do - shell('mkdir -p /tmp/concat/file') - end - after(:all) do - shell('rm -rf /tmp/concat /var/lib/puppet/concat') - end - pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': force => true, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', } EOS @@ -232,7 +247,7 @@ describe 'replacement of' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain '1' } end diff --git a/spec/acceptance/symbolic_name_spec.rb b/spec/acceptance/symbolic_name_spec.rb index 574e1d1..b0dceac 100644 --- a/spec/acceptance/symbolic_name_spec.rb +++ b/spec/acceptance/symbolic_name_spec.rb @@ -1,9 +1,10 @@ require 'spec_helper_acceptance' describe 'symbolic name' do + basedir = default.tmpdir('concat') pp = <<-EOS concat { 'not_abs_path': - path => '/tmp/concat/file', + path => '#{basedir}/file', } concat::fragment { '1': @@ -24,7 +25,7 @@ describe 'symbolic name' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain '1' } it { should contain '2' } diff --git a/spec/acceptance/warn_spec.rb b/spec/acceptance/warn_spec.rb index 536eb2a..2fa529d 100644 --- a/spec/acceptance/warn_spec.rb +++ b/spec/acceptance/warn_spec.rb @@ -1,20 +1,21 @@ require 'spec_helper_acceptance' describe 'concat warn =>' do + basedir = default.tmpdir('concat') context 'true should enable default warning message' do pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': warn => true, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', order => '01', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', order => '02', } @@ -25,7 +26,7 @@ describe 'concat warn =>' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain '# This file is managed by Puppet. DO NOT EDIT.' } it { should contain '1' } @@ -34,18 +35,18 @@ describe 'concat warn =>' do end context 'false should not enable default warning message' do pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': warn => false, } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', order => '01', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', order => '02', } @@ -56,7 +57,7 @@ describe 'concat warn =>' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should_not contain '# This file is managed by Puppet. DO NOT EDIT.' } it { should contain '1' } @@ -65,18 +66,18 @@ describe 'concat warn =>' do end context '# foo should overide default warning message' do pp = <<-EOS - concat { '/tmp/concat/file': + concat { '#{basedir}/file': warn => '# foo', } concat::fragment { '1': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '1', order => '01', } concat::fragment { '2': - target => '/tmp/concat/file', + target => '#{basedir}/file', content => '2', order => '02', } @@ -87,7 +88,7 @@ describe 'concat warn =>' do apply_manifest(pp, :catch_changes => true) end - describe file('/tmp/concat/file') do + describe file("#{basedir}/file") do it { should be_file } it { should contain '# foo' } it { should contain '1' }