Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inspec test multiple entities

I am writing inspec tests for my chef recipes where there are 5 files which needs to tested for their mode. All of them should have the same mode 0755.

describe file('/dev') do
 its('mode') { should cmp '00755' }
end

This is the sytax I am using. But this tests only 1 file(/dev). Is is possible to test multiple files using a single test block?

like image 791
codec Avatar asked Feb 04 '23 11:02

codec


2 Answers

you can use ruby code to test multiple entities

dirs = ["/lib","/bin","/dev"]
dirs.each do |path|
    describe file(path) do
        its('type') { should eq :directory }
        it { should be_directory }
    end
end
like image 105
anusha Avatar answered Feb 15 '23 20:02

anusha


It isn't exactly 'single test block', but you could iterate over file list:

%w(/dev /tmp).each do |path|
  describe file(path)
    its(:mode) { should cmp '00755' }
  end
end
like image 39
Szymon Szypulski Avatar answered Feb 15 '23 21:02

Szymon Szypulski