serverspec-ruby19 2.24.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +26 -0
- data/.gitmodules +3 -0
- data/.travis.yml +19 -0
- data/Gemfile +8 -0
- data/Guardfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +26 -0
- data/Rakefile +30 -0
- data/WINDOWS_SUPPORT.md +118 -0
- data/appveyor.yml +56 -0
- data/bin/serverspec-init +7 -0
- data/lib/serverspec.rb +63 -0
- data/lib/serverspec/commands/base.rb +7 -0
- data/lib/serverspec/helper.rb +8 -0
- data/lib/serverspec/helper/type.rb +26 -0
- data/lib/serverspec/matcher.rb +39 -0
- data/lib/serverspec/matcher/be_enabled.rb +13 -0
- data/lib/serverspec/matcher/be_enforcing.rb +10 -0
- data/lib/serverspec/matcher/be_executable.rb +13 -0
- data/lib/serverspec/matcher/be_installed.rb +13 -0
- data/lib/serverspec/matcher/be_listening.rb +13 -0
- data/lib/serverspec/matcher/be_mounted.rb +15 -0
- data/lib/serverspec/matcher/be_permissive.rb +10 -0
- data/lib/serverspec/matcher/be_reachable.rb +17 -0
- data/lib/serverspec/matcher/be_readable.rb +13 -0
- data/lib/serverspec/matcher/be_resolvable.rb +9 -0
- data/lib/serverspec/matcher/be_running.rb +13 -0
- data/lib/serverspec/matcher/be_writable.rb +13 -0
- data/lib/serverspec/matcher/belong_to_group.rb +5 -0
- data/lib/serverspec/matcher/belong_to_primary_group.rb +5 -0
- data/lib/serverspec/matcher/contain.rb +28 -0
- data/lib/serverspec/matcher/have_entry.rb +14 -0
- data/lib/serverspec/matcher/have_rule.rb +17 -0
- data/lib/serverspec/matcher/have_site_application.rb +18 -0
- data/lib/serverspec/matcher/have_site_bindings.rb +22 -0
- data/lib/serverspec/matcher/have_virtual_dir.rb +14 -0
- data/lib/serverspec/power_assert.rb +14 -0
- data/lib/serverspec/setup.rb +338 -0
- data/lib/serverspec/subject.rb +12 -0
- data/lib/serverspec/type/base.rb +30 -0
- data/lib/serverspec/type/bond.rb +11 -0
- data/lib/serverspec/type/bridge.rb +11 -0
- data/lib/serverspec/type/cgroup.rb +17 -0
- data/lib/serverspec/type/command.rb +20 -0
- data/lib/serverspec/type/cron.rb +15 -0
- data/lib/serverspec/type/default_gateway.rb +15 -0
- data/lib/serverspec/type/docker_base.rb +29 -0
- data/lib/serverspec/type/docker_container.rb +27 -0
- data/lib/serverspec/type/docker_image.rb +4 -0
- data/lib/serverspec/type/file.rb +133 -0
- data/lib/serverspec/type/fstab.rb +11 -0
- data/lib/serverspec/type/group.rb +11 -0
- data/lib/serverspec/type/host.rb +21 -0
- data/lib/serverspec/type/iis_app_pool.rb +43 -0
- data/lib/serverspec/type/iis_website.rb +40 -0
- data/lib/serverspec/type/interface.rb +27 -0
- data/lib/serverspec/type/ip6tables.rb +13 -0
- data/lib/serverspec/type/ipfilter.rb +11 -0
- data/lib/serverspec/type/ipnat.rb +11 -0
- data/lib/serverspec/type/iptables.rb +11 -0
- data/lib/serverspec/type/kernel_module.rb +7 -0
- data/lib/serverspec/type/linux_audit_system.rb +45 -0
- data/lib/serverspec/type/linux_kernel_parameter.rb +10 -0
- data/lib/serverspec/type/lxc.rb +15 -0
- data/lib/serverspec/type/mail_alias.rb +7 -0
- data/lib/serverspec/type/mysql_config.rb +10 -0
- data/lib/serverspec/type/package.rb +66 -0
- data/lib/serverspec/type/php_config.rb +10 -0
- data/lib/serverspec/type/port.rb +40 -0
- data/lib/serverspec/type/ppa.rb +11 -0
- data/lib/serverspec/type/process.rb +27 -0
- data/lib/serverspec/type/routing_table.rb +11 -0
- data/lib/serverspec/type/selinux.rb +19 -0
- data/lib/serverspec/type/selinux_module.rb +11 -0
- data/lib/serverspec/type/service.rb +52 -0
- data/lib/serverspec/type/user.rb +43 -0
- data/lib/serverspec/type/windows_feature.rb +7 -0
- data/lib/serverspec/type/windows_hot_fix.rb +7 -0
- data/lib/serverspec/type/windows_registry_key.rb +19 -0
- data/lib/serverspec/type/windows_scheduled_task.rb +7 -0
- data/lib/serverspec/type/x509_certificate.rb +76 -0
- data/lib/serverspec/type/x509_private_key.rb +21 -0
- data/lib/serverspec/type/yumrepo.rb +11 -0
- data/lib/serverspec/type/zfs.rb +29 -0
- data/lib/serverspec/version.rb +3 -0
- data/serverspec.gemspec +28 -0
- data/spec/helper/type_spec.rb +6 -0
- data/spec/spec_helper.rb +28 -0
- data/spec/type/aix/file_spec.rb +31 -0
- data/spec/type/aix/group_spec.rb +7 -0
- data/spec/type/aix/package_spec.rb +7 -0
- data/spec/type/aix/port_spec.rb +20 -0
- data/spec/type/aix/service_spec.rb +12 -0
- data/spec/type/aix/user_spec.rb +16 -0
- data/spec/type/arch/file_spec.rb +15 -0
- data/spec/type/arch/package_spec.rb +19 -0
- data/spec/type/arch/service_spec.rb +9 -0
- data/spec/type/base/command_spec.rb +67 -0
- data/spec/type/base/cron_spec.rb +11 -0
- data/spec/type/base/default_gateway_spec.rb +11 -0
- data/spec/type/base/file_spec.rb +356 -0
- data/spec/type/base/group_spec.rb +11 -0
- data/spec/type/base/host_spec.rb +47 -0
- data/spec/type/base/mail_alias_spec.rb +7 -0
- data/spec/type/base/mysql_config_spec.rb +13 -0
- data/spec/type/base/package_spec.rb +51 -0
- data/spec/type/base/php_config_spec.rb +33 -0
- data/spec/type/base/port_spec.rb +34 -0
- data/spec/type/base/process_spec.rb +35 -0
- data/spec/type/base/routing_table_spec.rb +63 -0
- data/spec/type/base/service_spec.rb +49 -0
- data/spec/type/base/user_spec.rb +44 -0
- data/spec/type/darwin/file_spec.rb +41 -0
- data/spec/type/darwin/package_spec.rb +19 -0
- data/spec/type/darwin/port_spec.rb +27 -0
- data/spec/type/darwin/service_spec.rb +16 -0
- data/spec/type/debian/package_spec.rb +23 -0
- data/spec/type/debian/service_spec.rb +11 -0
- data/spec/type/fedora/service_spec.rb +15 -0
- data/spec/type/fedora15/service_spec.rb +15 -0
- data/spec/type/fedora20/service_spec.rb +15 -0
- data/spec/type/freebsd/file_spec.rb +29 -0
- data/spec/type/freebsd/package_spec.rb +19 -0
- data/spec/type/freebsd/port_spec.rb +27 -0
- data/spec/type/freebsd/service_spec.rb +8 -0
- data/spec/type/freebsd10/package_spec.rb +19 -0
- data/spec/type/gentoo/package_spec.rb +7 -0
- data/spec/type/gentoo/service_spec.rb +12 -0
- data/spec/type/linux/bond_spec.rb +12 -0
- data/spec/type/linux/bridge_spec.rb +12 -0
- data/spec/type/linux/cgroup_spec.rb +13 -0
- data/spec/type/linux/docker_container_pre_1_8_spec.rb +124 -0
- data/spec/type/linux/docker_container_spec.rb +126 -0
- data/spec/type/linux/docker_image_spec.rb +94 -0
- data/spec/type/linux/file_spec.rb +27 -0
- data/spec/type/linux/fstab_spec.rb +31 -0
- data/spec/type/linux/interface_spec.rb +30 -0
- data/spec/type/linux/ip6tables_spec.rb +19 -0
- data/spec/type/linux/iptables_spec.rb +11 -0
- data/spec/type/linux/kernel_module_spec.rb +7 -0
- data/spec/type/linux/linux_audit_system_spec.rb +139 -0
- data/spec/type/linux/linux_kernel_parameter_spec.rb +33 -0
- data/spec/type/linux/lxc_container_spec.rb +12 -0
- data/spec/type/linux/selinux_module_spec.rb +11 -0
- data/spec/type/linux/selinux_spec.rb +23 -0
- data/spec/type/linux/x509_certificate_spec.rb +62 -0
- data/spec/type/linux/x509_private_key_spec.rb +31 -0
- data/spec/type/linux/zfs_spec.rb +15 -0
- data/spec/type/nixos/package_spec.rb +15 -0
- data/spec/type/nixos/service_spec.rb +9 -0
- data/spec/type/openbsd/file_spec.rb +134 -0
- data/spec/type/openbsd/interface_spec.rb +21 -0
- data/spec/type/openbsd/mail_alias_spec.rb +7 -0
- data/spec/type/openbsd/package_spec.rb +11 -0
- data/spec/type/openbsd/port_spec.rb +7 -0
- data/spec/type/openbsd/service_spec.rb +13 -0
- data/spec/type/openbsd/user_spec.rb +12 -0
- data/spec/type/opensuse/service_spec.rb +16 -0
- data/spec/type/plamo/package_spec.rb +8 -0
- data/spec/type/plamo/service_spec.rb +8 -0
- data/spec/type/redhat/file_spec.rb +19 -0
- data/spec/type/redhat/package_spec.rb +23 -0
- data/spec/type/redhat/service_spec.rb +11 -0
- data/spec/type/redhat/yumrepo_spec.rb +11 -0
- data/spec/type/redhat5/iptables_spec.rb +11 -0
- data/spec/type/redhat7/service_spec.rb +9 -0
- data/spec/type/smartos/package_spec.rb +19 -0
- data/spec/type/smartos/service_spec.rb +16 -0
- data/spec/type/solaris/cron_spec.rb +11 -0
- data/spec/type/solaris/file_spec.rb +15 -0
- data/spec/type/solaris/group_spec.rb +7 -0
- data/spec/type/solaris/host_spec.rb +19 -0
- data/spec/type/solaris/ipfilter_spec.rb +7 -0
- data/spec/type/solaris/ipnat_spec.rb +7 -0
- data/spec/type/solaris/package_spec.rb +7 -0
- data/spec/type/solaris/port_spec.rb +34 -0
- data/spec/type/solaris/service_spec.rb +16 -0
- data/spec/type/solaris/user_spec.rb +16 -0
- data/spec/type/solaris/zfs_spec.rb +15 -0
- data/spec/type/solaris10/file_spec.rb +313 -0
- data/spec/type/solaris10/group_spec.rb +8 -0
- data/spec/type/solaris10/host_spec.rb +16 -0
- data/spec/type/solaris10/package_spec.rb +8 -0
- data/spec/type/solaris10/user_spec.rb +8 -0
- data/spec/type/suse/package_spec.rb +23 -0
- data/spec/type/suse/service_spec.rb +11 -0
- data/spec/type/ubuntu/ppa_spec.rb +11 -0
- data/spec/type/ubuntu/service_spec.rb +7 -0
- data/spec/type/windows/command_spec.rb +64 -0
- data/spec/type/windows/feature_spec.rb +17 -0
- data/spec/type/windows/file_spec.rb +120 -0
- data/spec/type/windows/group_spec.rb +23 -0
- data/spec/type/windows/host_spec.rb +32 -0
- data/spec/type/windows/hot_fix_spec.rb +22 -0
- data/spec/type/windows/iis_app_pool_spec.rb +17 -0
- data/spec/type/windows/iis_webisite_spec.rb +16 -0
- data/spec/type/windows/package_spec.rb +10 -0
- data/spec/type/windows/port_spec.rb +25 -0
- data/spec/type/windows/registry_key_spec.rb +58 -0
- data/spec/type/windows/scheduled_task_spec.rb +9 -0
- data/spec/type/windows/service_spec.rb +30 -0
- data/spec/type/windows/user_spec.rb +33 -0
- data/wercker.yml +1 -0
- metadata +450 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'base'
|
|
4
|
+
|
|
5
|
+
describe command('cat /etc/resolv.conf') do
|
|
6
|
+
let(:stdout) { "nameserver 127.0.0.1\r\n" }
|
|
7
|
+
its(:stdout) { should match /nameserver 127.0.0.1/ }
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
describe 'complete matching of stdout' do
|
|
11
|
+
context command('cat /etc/resolv.conf') do
|
|
12
|
+
let(:stdout) { "foocontent-should-be-includedbar\r\n" }
|
|
13
|
+
its(:stdout) { should_not eq 'content-should-be-included' }
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe 'regexp matching of stdout' do
|
|
18
|
+
context command('cat /etc/resolv.conf') do
|
|
19
|
+
let(:stdout) { "nameserver 127.0.0.1\r\n" }
|
|
20
|
+
its(:stdout) { should match /127\.0\.0\.1/ }
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe command('cat /etc/resolv.conf') do
|
|
25
|
+
let(:stderr) { "No such file or directory\r\n" }
|
|
26
|
+
its(:stderr) { should match /No such file or directory/ }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe 'complete matching of stderr' do
|
|
30
|
+
context command('cat /etc/resolv.conf') do
|
|
31
|
+
let(:stderr) { "No such file or directory\r\n" }
|
|
32
|
+
its(:stdout) { should_not eq 'file' }
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe 'regexp matching of stderr' do
|
|
37
|
+
context command('cat /etc/resolv.conf') do
|
|
38
|
+
let(:stderr) { "No such file or directory\r\n" }
|
|
39
|
+
its(:stderr) { should match /file/ }
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
describe command('cat /etc/resolv.conf') do
|
|
44
|
+
its(:exit_status) { should eq 0 }
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
describe command('ls -al /') do
|
|
48
|
+
let(:stdout) { <<EOF
|
|
49
|
+
total 88
|
|
50
|
+
drwxr-xr-x 23 root root 4096 Oct 10 17:19 .
|
|
51
|
+
drwxr-xr-x 23 root root 4096 Oct 10 17:19 ..
|
|
52
|
+
drwxr-xr-x 2 root root 4096 Sep 11 16:43 bin
|
|
53
|
+
drwxr-xr-x 3 root root 4096 Sep 23 18:14 boot
|
|
54
|
+
drwxr-xr-x 14 root root 4260 Oct 14 16:14 dev
|
|
55
|
+
drwxr-xr-x 104 root root 4096 Oct 14 17:34 etc
|
|
56
|
+
drwxr-xr-x 8 root root 4096 Oct 1 15:09 home
|
|
57
|
+
EOF
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
its(:stdout) { should match /bin/ }
|
|
61
|
+
its(:stdout) { should eq stdout }
|
|
62
|
+
its(:stdout) { should contain('4260') }
|
|
63
|
+
its(:stdout) { should contain('4260').from('bin').to('home') }
|
|
64
|
+
its(:stdout) { should contain('4260').after('bin') }
|
|
65
|
+
its(:stdout) { should contain('4260').before('home') }
|
|
66
|
+
its(:stdout) { should_not contain('4260').before('bin') }
|
|
67
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, :family => 'base'
|
|
4
|
+
|
|
5
|
+
describe default_gateway do
|
|
6
|
+
let(:stdout) { "default via 192.168.1.1 dev eth1 \r\n" }
|
|
7
|
+
its(:ipaddress) { should eq '192.168.1.1' }
|
|
8
|
+
its(:interface) { should eq 'eth1' }
|
|
9
|
+
its(:ipaddress) { should_not eq '192.168.1.2' }
|
|
10
|
+
its(:interface) { should_not eq 'eth0' }
|
|
11
|
+
end
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
set :os, {:family => 'base'}
|
|
4
|
+
|
|
5
|
+
describe file('/etc/ssh/sshd_config') do
|
|
6
|
+
it { should be_file }
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe file('/etc/ssh') do
|
|
10
|
+
it { should be_directory }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
describe file('/var/run/unicorn.sock') do
|
|
14
|
+
it { should be_socket }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
describe file('/dev/disk0') do
|
|
18
|
+
it { should be_block_device }
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe file('/dev/ttys0') do
|
|
22
|
+
it { should be_character_device }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe file('/var/run/pure-ftpd/pure-ftpd.upload.pipe') do
|
|
26
|
+
it { should be_pipe }
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe file('/bin/sh') do
|
|
30
|
+
it { should be_symlink }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe file('/bin/sh') do
|
|
34
|
+
it { should exist }
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
describe file('/etc/ssh/sshd_config') do
|
|
38
|
+
it { should contain 'This is the sshd server system-wide configuration file' }
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
describe file('/etc/ssh/sshd_config') do
|
|
42
|
+
it { should contain /^This is the sshd server system-wide configuration file/ }
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
describe file('Gemfile') do
|
|
46
|
+
it { should contain('rspec').from(/^group :test do/).to(/^end/) }
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
describe file('Gemfile') do
|
|
50
|
+
it { should contain('rspec').after(/^group :test do/) }
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
describe file('Gemfile') do
|
|
54
|
+
it { should contain('rspec').before(/^end/) }
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
describe file('/etc/passwd') do
|
|
58
|
+
it { should be_mode 644 }
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
describe file('/etc/passwd') do
|
|
62
|
+
it { should be_owned_by 'root' }
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
describe file('/etc/passwd') do
|
|
66
|
+
it { should be_grouped_into 'root' }
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
describe file('/etc/pam.d/system-auth') do
|
|
70
|
+
it { should be_linked_to '/etc/pam.d/system-auth-ac' }
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
describe file('/dev') do
|
|
74
|
+
let(:stdout) { "755\r\n" }
|
|
75
|
+
it { should be_readable }
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
describe file('/dev') do
|
|
79
|
+
let(:stdout) { "333\r\n" }
|
|
80
|
+
it { should_not be_readable }
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
describe file('/dev') do
|
|
84
|
+
let(:stdout) { "400\r\n" }
|
|
85
|
+
it { should be_readable.by('owner') }
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
describe file('/dev') do
|
|
89
|
+
let(:stdout) { "044\r\n" }
|
|
90
|
+
it { should_not be_readable.by('owner') }
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
describe file('/dev') do
|
|
94
|
+
let(:stdout) { "040\r\n" }
|
|
95
|
+
it { should be_readable.by('group') }
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
describe file('/dev') do
|
|
99
|
+
let(:stdout) { "404\r\n" }
|
|
100
|
+
it { should_not be_readable.by('group') }
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
describe file('/dev') do
|
|
104
|
+
let(:stdout) { "044\r\n" }
|
|
105
|
+
it { should be_readable.by('others') }
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
describe file('/dev') do
|
|
109
|
+
let(:stdout) { "443\r\n" }
|
|
110
|
+
it { should_not be_readable.by('others') }
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
describe file('/dev') do
|
|
114
|
+
let(:stdout) { "755\r\n" }
|
|
115
|
+
it { should be_writable }
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
describe file('/dev') do
|
|
119
|
+
let(:stdout) { "555\r\n" }
|
|
120
|
+
it { should_not be_writable }
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
describe file('/dev') do
|
|
124
|
+
let(:stdout) { "200\r\n" }
|
|
125
|
+
it { should be_writable.by('owner') }
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
describe file('/dev') do
|
|
129
|
+
let(:stdout) { "555\r\n" }
|
|
130
|
+
it { should_not be_writable.by('owner') }
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
describe file('/dev') do
|
|
134
|
+
let(:stdout) { "030\r\n" }
|
|
135
|
+
it { should be_writable.by('group') }
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
describe file('/dev') do
|
|
139
|
+
let(:stdout) { "555\r\n" }
|
|
140
|
+
it { should_not be_writable.by('group') }
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
describe file('/dev') do
|
|
144
|
+
let(:stdout) { "666\r\n" }
|
|
145
|
+
it { should be_writable.by('others') }
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
describe file('/dev') do
|
|
149
|
+
let(:stdout) { "555\r\n" }
|
|
150
|
+
it { should_not be_writable.by('others') }
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
describe file('/dev') do
|
|
155
|
+
let(:stdout) { "755\r\n" }
|
|
156
|
+
it { should be_executable }
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
describe file('/dev') do
|
|
160
|
+
let(:stdout) { "666\r\n" }
|
|
161
|
+
it { should_not be_executable }
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
describe file('/dev') do
|
|
165
|
+
let(:stdout) { "100\r\n" }
|
|
166
|
+
it { should be_executable.by('owner') }
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
describe file('/dev') do
|
|
170
|
+
let(:stdout) { "666\r\n" }
|
|
171
|
+
it { should_not be_executable.by('owner') }
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
describe file('/dev') do
|
|
175
|
+
let(:stdout) { "070\r\n" }
|
|
176
|
+
it { should be_executable.by('group') }
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
describe file('/dev') do
|
|
180
|
+
let(:stdout) { "666\r\n" }
|
|
181
|
+
it { should_not be_executable.by('group') }
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
describe file('/dev') do
|
|
185
|
+
let(:stdout) { "001\r\n" }
|
|
186
|
+
it { should be_executable.by('others') }
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
describe file('/dev') do
|
|
190
|
+
let(:stdout) { "666\r\n" }
|
|
191
|
+
it { should_not be_executable.by('others') }
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
describe file('/') do
|
|
195
|
+
it { should be_mounted }
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
describe file('/') do
|
|
199
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
200
|
+
it { should be_mounted.with( :type => 'ext4' ) }
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
describe file('/') do
|
|
204
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
205
|
+
it { should be_mounted.with( :type => 'ext4', :options => { :rw => true } ) }
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
describe file('/') do
|
|
209
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
210
|
+
it { should be_mounted.with( :type => 'ext4', :options => { :mode => 620 } ) }
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
describe file('/') do
|
|
214
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
215
|
+
it { should be_mounted.with( :type => 'ext4', :device => '/dev/mapper/VolGroup-lv_root' ) }
|
|
216
|
+
end
|
|
217
|
+
|
|
218
|
+
describe file('/') do
|
|
219
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
220
|
+
it { should_not be_mounted.with( :type => 'xfs' ) }
|
|
221
|
+
end
|
|
222
|
+
|
|
223
|
+
describe file('/') do
|
|
224
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
225
|
+
it { should_not be_mounted.with( :type => 'ext4', :options => { :rw => false } ) }
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
describe file('/') do
|
|
229
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
230
|
+
it { should_not be_mounted.with( :type => 'ext4', :options => { :mode => 600 } ) }
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
describe file('/') do
|
|
234
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
235
|
+
it { should_not be_mounted.with( :type => 'xfs', :device => '/dev/mapper/VolGroup-lv_root' ) }
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
describe file('/') do
|
|
239
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
240
|
+
it { should_not be_mounted.with( :type => 'ext4', :device => '/dev/mapper/VolGroup-lv_r00t' ) }
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
describe file('/') do
|
|
244
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
245
|
+
it do
|
|
246
|
+
should be_mounted.only_with(
|
|
247
|
+
:device => '/dev/mapper/VolGroup-lv_root',
|
|
248
|
+
:type => 'ext4',
|
|
249
|
+
:options => {
|
|
250
|
+
:rw => true,
|
|
251
|
+
:mode => 620,
|
|
252
|
+
}
|
|
253
|
+
)
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
describe file('/') do
|
|
258
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
259
|
+
it do
|
|
260
|
+
should_not be_mounted.only_with(
|
|
261
|
+
:device => '/dev/mapper/VolGroup-lv_root',
|
|
262
|
+
:type => 'ext4',
|
|
263
|
+
:options => {
|
|
264
|
+
:rw => true,
|
|
265
|
+
:mode => 620,
|
|
266
|
+
:bind => true,
|
|
267
|
+
}
|
|
268
|
+
)
|
|
269
|
+
end
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
describe file('/') do
|
|
273
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
274
|
+
it do
|
|
275
|
+
should_not be_mounted.only_with(
|
|
276
|
+
:device => '/dev/mapper/VolGroup-lv_root',
|
|
277
|
+
:type => 'ext4',
|
|
278
|
+
:options => {
|
|
279
|
+
:rw => true,
|
|
280
|
+
}
|
|
281
|
+
)
|
|
282
|
+
end
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
describe file('/') do
|
|
286
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
287
|
+
it do
|
|
288
|
+
should_not be_mounted.only_with(
|
|
289
|
+
:device => '/dev/mapper/VolGroup-lv_roooooooooot',
|
|
290
|
+
:type => 'ext4',
|
|
291
|
+
:options => {
|
|
292
|
+
:rw => true,
|
|
293
|
+
:mode => 620,
|
|
294
|
+
}
|
|
295
|
+
)
|
|
296
|
+
end
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
describe file('/etc/invalid-mount') do
|
|
300
|
+
let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
|
|
301
|
+
it { should_not be_mounted.only_with( :type => 'ext4' ) }
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
describe file('/etc/services') do
|
|
305
|
+
let(:stdout) { "35435ea447c19f0ea5ef971837ab9ced\n" }
|
|
306
|
+
its(:md5sum) { should eq '35435ea447c19f0ea5ef971837ab9ced' }
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
describe file('invalid-file') do
|
|
310
|
+
its(:md5sum) { should_not eq 'INVALIDMD5CHECKSUM' }
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
describe file('/etc/services') do
|
|
314
|
+
let(:stdout) {"0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a" }
|
|
315
|
+
its(:sha256sum) { should eq '0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a' }
|
|
316
|
+
end
|
|
317
|
+
|
|
318
|
+
describe file('invalid-file') do
|
|
319
|
+
its(:sha256sum) { should_not eq 'INVALIDSHA256CHECKSUM' }
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
describe file('/etc/passwd') do
|
|
323
|
+
let(:stdout) {<<EOF
|
|
324
|
+
root:x:0:0:root:/root:/bin/bash
|
|
325
|
+
bin:x:1:1:bin:/bin:/sbin/nologin
|
|
326
|
+
daemon:x:2:2:daemon:/sbin:/sbin/nologin
|
|
327
|
+
sync:x:5:0:sync:/sbin:/bin/sync
|
|
328
|
+
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
|
|
329
|
+
halt:x:7:0:halt:/sbin:/sbin/halt
|
|
330
|
+
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
|
|
331
|
+
operator:x:11:0:operator:/root:/sbin/nologin
|
|
332
|
+
nobody:x:99:99:Nobody:/:/sbin/nologin
|
|
333
|
+
dbus:x:81:81:System message bus:/:/sbin/nologin
|
|
334
|
+
EOF
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
its(:content) { should match /root:x:0:0/ }
|
|
338
|
+
end
|
|
339
|
+
|
|
340
|
+
describe file('/etc/passwd') do
|
|
341
|
+
let(:stdout) { Time.now.to_i.to_s }
|
|
342
|
+
its(:mtime) { should > DateTime.now - 1 }
|
|
343
|
+
end
|
|
344
|
+
|
|
345
|
+
describe file('/etc/passwod') do
|
|
346
|
+
let(:stdout) { 100.to_s }
|
|
347
|
+
its(:size) { should > 0 }
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
describe file('/etc/passwd') do
|
|
351
|
+
it 'be_immutable is not implemented in base class' do
|
|
352
|
+
expect {
|
|
353
|
+
should be_immutable
|
|
354
|
+
}.to raise_exception
|
|
355
|
+
end
|
|
356
|
+
end
|