5

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?

codec
  • 7,978
  • 26
  • 71
  • 127

2 Answers2

8

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
anusha
  • 96
  • 1
  • 2
1

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
Szymon
  • 1,525
  • 1
  • 11
  • 12