inspec/test/integration/default/cmp_matcher_spec.rb
Jeremy J. Miller 6481f00454 cmp better support for version ops
Signed-off-by: Jeremy J. Miller <jm@chef.io>
2016-12-14 23:45:38 -05:00

143 lines
3.2 KiB
Ruby

# encoding: utf-8
if os.linux?
# uses the `cmp` matcher instead of the eq matcher
describe sshd_config do
its('Port') { should eq '22' }
its('Port') { should_not eq 22 }
its('Port') { should cmp '22' }
its('Port') { should cmp 22 }
its('Port') { should cmp 22.0 }
its('Port') { should_not cmp 22.1 }
its('LogLevel') { should eq 'VERBOSE' }
its('LogLevel') { should_not eq 'verbose'}
its('LogLevel') { should cmp 'VERBOSE' }
its('LogLevel') { should cmp 'verbose' }
its('LogLevel') { should cmp 'VerBose' }
end
describe passwd.passwords.uniq do
it { should eq ['x'] }
it { should cmp ['x'] }
it { should cmp 'x' }
end
describe passwd.usernames do
it { should include 'root' }
it { should_not cmp 'root' }
end
len = passwd.passwords.length
describe len do
it { should cmp len.to_s }
end
describe 122 do
it { should cmp 122 }
it { should cmp < 133 }
it { should cmp > 111 }
it { should_not cmp < 122 }
it { should_not cmp > 122 }
it { should cmp <= 122 }
it { should cmp >= 122 }
it { should cmp >= -666 }
it { should_not cmp <= 111 }
it { should_not cmp >= 133 }
it { should cmp /122/ }
it { should_not cmp /133/ }
end
describe 0o640 do
it { should cmp 0o640 }
it { should cmp > 100 }
it { should_not cmp <= 0 }
it { should cmp == '416' }
it { should cmp /416$/ }
end
describe '12' do
it { should cmp 12 }
it { should cmp < 13 }
it { should cmp > 11 }
it { should_not cmp < 12 }
it { should_not cmp > 12 }
it { should cmp <= 12 }
it { should cmp >= 12 }
it { should cmp >= -666 }
it { should_not cmp <= 11 }
it { should_not cmp >= 13 }
end
# versions
describe '2.4.12' do
it { should cmp == '2.4.12' }
it { should cmp >= '2.4.5' }
it { should cmp >= '2.4.2' }
it { should cmp <= '2.4.20' }
it { should cmp <= '3.0' }
it { should cmp < '2.4.22' }
it { should cmp < '3.5' }
it { should cmp < '3.5.1' }
it { should cmp > '1' }
it { should cmp > '1.0' }
it { should cmp > '1.0.1' }
it { should cmp > '2.4.1' }
it { should cmp > '2.4.1.2' }
it { should cmp > '2.4.0.1-alpha' }
end
# Don't compare octal to number
describe '07' do
it { should_not cmp 7 }
end
describe 'some 123' do
it { should cmp 'some 123' }
it { should cmp /^SOME\s\d+(1|2|3)3/i }
it { should_not cmp /^SOME/ }
end
describe ['some-array'] do
it { should cmp 'some-array' }
it { should cmp /.+/ }
it { should_not cmp /^SOME/ }
end
describe '' do
it { should_not cmp >= 3 }
it { should_not cmp < 3 }
it { should_not cmp /.+/ }
end
describe nil do
it { should cmp nil }
it { should_not cmp >= 3 }
it { should_not cmp < 3 }
it { should_not cmp /something/ }
end
describe true do
it { should cmp 'true' }
it { should cmp 'True' }
it { should cmp true }
end
describe false do
it { should cmp 'false' }
it { should cmp 'False' }
it { should cmp false }
end
describe 0 do
it { should cmp 0 }
it { should cmp 00 }
it { should cmp '0' }
it { should cmp '00' }
it { should_not cmp 1 }
it { should_not cmp '01' }
end
end