serverspec 1.16.0 → 2.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (246) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/Rakefile +20 -25
  4. data/lib/serverspec.rb +0 -3
  5. data/lib/serverspec/helper/os.rb +0 -3
  6. data/lib/serverspec/helper/type.rb +3 -3
  7. data/lib/serverspec/matchers.rb +1 -7
  8. data/lib/serverspec/matchers/have_rule.rb +1 -1
  9. data/lib/serverspec/setup.rb +12 -11
  10. data/lib/serverspec/type/file.rb +0 -15
  11. data/lib/serverspec/type/iis_app_pool.rb +0 -28
  12. data/lib/serverspec/type/iis_website.rb +0 -12
  13. data/lib/serverspec/type/interface.rb +0 -3
  14. data/lib/serverspec/type/user.rb +0 -4
  15. data/lib/serverspec/version.rb +1 -1
  16. data/serverspec.gemspec +4 -3
  17. data/wercker.yml +9 -9
  18. metadata +36 -471
  19. data/lib/serverspec/matchers/belong_to_primary_group.rb +0 -5
  20. data/lib/serverspec/matchers/have_site_application.rb +0 -18
  21. data/lib/serverspec/matchers/have_site_bindings.rb +0 -22
  22. data/lib/serverspec/matchers/have_virtual_dir.rb +0 -14
  23. data/lib/serverspec/type/ip6tables.rb +0 -13
  24. data/lib/serverspec/type/ppa.rb +0 -13
  25. data/lib/serverspec/type/windows_scheduled_task.rb +0 -9
  26. data/spec/aix/command_spec.rb +0 -65
  27. data/spec/aix/cron_spec.rb +0 -21
  28. data/spec/aix/default_gateway_spec.rb +0 -16
  29. data/spec/aix/file_spec.rb +0 -404
  30. data/spec/aix/group_spec.rb +0 -21
  31. data/spec/aix/host_spec.rb +0 -58
  32. data/spec/aix/package_spec.rb +0 -100
  33. data/spec/aix/php_config_spec.rb +0 -36
  34. data/spec/aix/port_spec.rb +0 -30
  35. data/spec/aix/process_spec.rb +0 -29
  36. data/spec/aix/routing_table_spec.rb +0 -120
  37. data/spec/aix/service_spec.rb +0 -93
  38. data/spec/aix/user_spec.rb +0 -57
  39. data/spec/arch/file_spec.rb +0 -413
  40. data/spec/arch/package_spec.rb +0 -100
  41. data/spec/arch/service_spec.rb +0 -84
  42. data/spec/backend/cmd/configuration_spec.rb +0 -9
  43. data/spec/backend/exec/configuration_spec.rb +0 -61
  44. data/spec/backend/powershell/script_helper_spec.rb +0 -105
  45. data/spec/backend/ssh/configuration_spec.rb +0 -184
  46. data/spec/backend/winrm/configuration_spec.rb +0 -9
  47. data/spec/darwin/command_spec.rb +0 -65
  48. data/spec/darwin/cron_spec.rb +0 -21
  49. data/spec/darwin/default_gateway_spec.rb +0 -16
  50. data/spec/darwin/file_spec.rb +0 -413
  51. data/spec/darwin/group_spec.rb +0 -21
  52. data/spec/darwin/host_spec.rb +0 -58
  53. data/spec/darwin/mail_alias_spec.rb +0 -12
  54. data/spec/darwin/package_spec.rb +0 -82
  55. data/spec/darwin/php_config_spec.rb +0 -36
  56. data/spec/darwin/port_spec.rb +0 -30
  57. data/spec/darwin/process_spec.rb +0 -29
  58. data/spec/darwin/routing_table_spec.rb +0 -120
  59. data/spec/darwin/service_spec.rb +0 -91
  60. data/spec/darwin/user_spec.rb +0 -57
  61. data/spec/debian/cgroup_spec.rb +0 -14
  62. data/spec/debian/command_spec.rb +0 -65
  63. data/spec/debian/cron_spec.rb +0 -21
  64. data/spec/debian/default_gateway_spec.rb +0 -16
  65. data/spec/debian/file_spec.rb +0 -413
  66. data/spec/debian/group_spec.rb +0 -22
  67. data/spec/debian/host_spec.rb +0 -58
  68. data/spec/debian/interface_spec.rb +0 -24
  69. data/spec/debian/ip6tables_spec.rb +0 -21
  70. data/spec/debian/iptables_spec.rb +0 -21
  71. data/spec/debian/kernel_module_spec.rb +0 -12
  72. data/spec/debian/linux_kernel_parameter_spec.rb +0 -36
  73. data/spec/debian/lxc_spec.rb +0 -22
  74. data/spec/debian/mail_alias_spec.rb +0 -12
  75. data/spec/debian/package_spec.rb +0 -130
  76. data/spec/debian/php_config_spec.rb +0 -36
  77. data/spec/debian/port_spec.rb +0 -40
  78. data/spec/debian/process_spec.rb +0 -29
  79. data/spec/debian/routing_table_spec.rb +0 -120
  80. data/spec/debian/selinux_spec.rb +0 -18
  81. data/spec/debian/service_spec.rb +0 -93
  82. data/spec/debian/user_spec.rb +0 -57
  83. data/spec/debian/zfs_spec.rb +0 -18
  84. data/spec/fedora/cgroup_spec.rb +0 -14
  85. data/spec/fedora/command_spec.rb +0 -67
  86. data/spec/fedora/cron_spec.rb +0 -21
  87. data/spec/fedora/default_gateway_spec.rb +0 -16
  88. data/spec/fedora/file_spec.rb +0 -413
  89. data/spec/fedora/group_spec.rb +0 -21
  90. data/spec/fedora/host_spec.rb +0 -58
  91. data/spec/fedora/interface_spec.rb +0 -24
  92. data/spec/fedora/ip6tables_spec.rb +0 -21
  93. data/spec/fedora/iptables_spec.rb +0 -21
  94. data/spec/fedora/kernel_module_spec.rb +0 -12
  95. data/spec/fedora/linux_kernel_parameter_spec.rb +0 -36
  96. data/spec/fedora/lxc_spec.rb +0 -22
  97. data/spec/fedora/mail_alias_spec.rb +0 -12
  98. data/spec/fedora/package_spec.rb +0 -118
  99. data/spec/fedora/php_config_spec.rb +0 -36
  100. data/spec/fedora/port_spec.rb +0 -30
  101. data/spec/fedora/process_spec.rb +0 -41
  102. data/spec/fedora/routing_table_spec.rb +0 -120
  103. data/spec/fedora/selinux_spec.rb +0 -18
  104. data/spec/fedora/user_spec.rb +0 -57
  105. data/spec/fedora/yumrepo_spec.rb +0 -25
  106. data/spec/fedora/zfs_spec.rb +0 -18
  107. data/spec/freebsd/command_spec.rb +0 -65
  108. data/spec/freebsd/cron_spec.rb +0 -21
  109. data/spec/freebsd/default_gateway_spec.rb +0 -16
  110. data/spec/freebsd/file_spec.rb +0 -385
  111. data/spec/freebsd/group_spec.rb +0 -21
  112. data/spec/freebsd/host_spec.rb +0 -58
  113. data/spec/freebsd/package_spec.rb +0 -96
  114. data/spec/freebsd/php_config_spec.rb +0 -36
  115. data/spec/freebsd/port_spec.rb +0 -30
  116. data/spec/freebsd/process_spec.rb +0 -29
  117. data/spec/freebsd/routing_table_spec.rb +0 -120
  118. data/spec/freebsd/service_spec.rb +0 -93
  119. data/spec/freebsd/user_spec.rb +0 -57
  120. data/spec/freebsd10/package_spec.rb +0 -13
  121. data/spec/gentoo/cgroup_spec.rb +0 -14
  122. data/spec/gentoo/command_spec.rb +0 -65
  123. data/spec/gentoo/cron_spec.rb +0 -21
  124. data/spec/gentoo/default_gateway_spec.rb +0 -16
  125. data/spec/gentoo/file_spec.rb +0 -413
  126. data/spec/gentoo/group_spec.rb +0 -21
  127. data/spec/gentoo/host_spec.rb +0 -58
  128. data/spec/gentoo/interface_spec.rb +0 -24
  129. data/spec/gentoo/ip6tables_spec.rb +0 -21
  130. data/spec/gentoo/iptables_spec.rb +0 -21
  131. data/spec/gentoo/kernel_module_spec.rb +0 -12
  132. data/spec/gentoo/linux_kernel_parameter_spec.rb +0 -36
  133. data/spec/gentoo/lxc_spec.rb +0 -22
  134. data/spec/gentoo/mail_alias_spec.rb +0 -12
  135. data/spec/gentoo/package_spec.rb +0 -91
  136. data/spec/gentoo/php_config_spec.rb +0 -36
  137. data/spec/gentoo/port_spec.rb +0 -30
  138. data/spec/gentoo/process_spec.rb +0 -29
  139. data/spec/gentoo/routing_table_spec.rb +0 -120
  140. data/spec/gentoo/selinux_spec.rb +0 -18
  141. data/spec/gentoo/service_spec.rb +0 -93
  142. data/spec/gentoo/user_spec.rb +0 -57
  143. data/spec/gentoo/zfs_spec.rb +0 -18
  144. data/spec/nixos/file_spec.rb +0 -421
  145. data/spec/nixos/package_spec.rb +0 -109
  146. data/spec/nixos/service_spec.rb +0 -40
  147. data/spec/plamo/cgroup_spec.rb +0 -14
  148. data/spec/plamo/command_spec.rb +0 -65
  149. data/spec/plamo/cron_spec.rb +0 -21
  150. data/spec/plamo/default_gateway_spec.rb +0 -16
  151. data/spec/plamo/file_spec.rb +0 -413
  152. data/spec/plamo/group_spec.rb +0 -22
  153. data/spec/plamo/host_spec.rb +0 -58
  154. data/spec/plamo/interface_spec.rb +0 -24
  155. data/spec/plamo/ip6tables_spec.rb +0 -21
  156. data/spec/plamo/iptables_spec.rb +0 -21
  157. data/spec/plamo/kernel_module_spec.rb +0 -12
  158. data/spec/plamo/linux_kernel_parameter_spec.rb +0 -36
  159. data/spec/plamo/lxc_spec.rb +0 -22
  160. data/spec/plamo/mail_alias_spec.rb +0 -12
  161. data/spec/plamo/package_spec.rb +0 -100
  162. data/spec/plamo/php_config_spec.rb +0 -36
  163. data/spec/plamo/port_spec.rb +0 -30
  164. data/spec/plamo/routing_table_spec.rb +0 -120
  165. data/spec/plamo/selinux_spec.rb +0 -18
  166. data/spec/plamo/service_spec.rb +0 -84
  167. data/spec/plamo/user_spec.rb +0 -57
  168. data/spec/plamo/zfs_spec.rb +0 -18
  169. data/spec/redhat/cgroup_spec.rb +0 -14
  170. data/spec/redhat/command_spec.rb +0 -67
  171. data/spec/redhat/cron_spec.rb +0 -21
  172. data/spec/redhat/default_gateway_spec.rb +0 -16
  173. data/spec/redhat/file_spec.rb +0 -418
  174. data/spec/redhat/group_spec.rb +0 -21
  175. data/spec/redhat/host_spec.rb +0 -64
  176. data/spec/redhat/interface_spec.rb +0 -24
  177. data/spec/redhat/ip6tables_spec.rb +0 -21
  178. data/spec/redhat/iptables_spec.rb +0 -21
  179. data/spec/redhat/kernel_module_spec.rb +0 -12
  180. data/spec/redhat/linux_kernel_parameter_spec.rb +0 -36
  181. data/spec/redhat/lxc_spec.rb +0 -22
  182. data/spec/redhat/mail_alias_spec.rb +0 -12
  183. data/spec/redhat/package_spec.rb +0 -118
  184. data/spec/redhat/php_config_spec.rb +0 -36
  185. data/spec/redhat/port_spec.rb +0 -30
  186. data/spec/redhat/process_spec.rb +0 -41
  187. data/spec/redhat/routing_table_spec.rb +0 -120
  188. data/spec/redhat/selinux_spec.rb +0 -18
  189. data/spec/redhat/service_spec.rb +0 -93
  190. data/spec/redhat/user_spec.rb +0 -57
  191. data/spec/redhat/yumrepo_spec.rb +0 -25
  192. data/spec/redhat/zfs_spec.rb +0 -18
  193. data/spec/redhat7/service_spec.rb +0 -21
  194. data/spec/smartos/mail_alias_spec.rb +0 -12
  195. data/spec/smartos/process_spec.rb +0 -29
  196. data/spec/solaris/command_spec.rb +0 -65
  197. data/spec/solaris/cron_spec.rb +0 -21
  198. data/spec/solaris/default_gateway_spec.rb +0 -16
  199. data/spec/solaris/file_spec.rb +0 -413
  200. data/spec/solaris/group_spec.rb +0 -21
  201. data/spec/solaris/host_spec.rb +0 -58
  202. data/spec/solaris/ipfilter_spec.rb +0 -8
  203. data/spec/solaris/ipnat_spec.rb +0 -8
  204. data/spec/solaris/mail_alias_spec.rb +0 -12
  205. data/spec/solaris/package_spec.rb +0 -100
  206. data/spec/solaris/php_config_spec.rb +0 -36
  207. data/spec/solaris/port_spec.rb +0 -30
  208. data/spec/solaris/process_spec.rb +0 -29
  209. data/spec/solaris/routing_table_spec.rb +0 -120
  210. data/spec/solaris/service_spec.rb +0 -93
  211. data/spec/solaris/svcprop_spec.rb +0 -13
  212. data/spec/solaris/user_spec.rb +0 -57
  213. data/spec/solaris/zfs_spec.rb +0 -18
  214. data/spec/solaris10/file_spec.rb +0 -395
  215. data/spec/solaris10/group_spec.rb +0 -21
  216. data/spec/solaris10/mail_alias_spec.rb +0 -12
  217. data/spec/solaris10/package_spec.rb +0 -85
  218. data/spec/solaris10/php_config_spec.rb +0 -36
  219. data/spec/solaris10/user_spec.rb +0 -57
  220. data/spec/solaris11/command_spec.rb +0 -65
  221. data/spec/solaris11/cron_spec.rb +0 -21
  222. data/spec/solaris11/default_gateway_spec.rb +0 -16
  223. data/spec/solaris11/file_spec.rb +0 -413
  224. data/spec/solaris11/group_spec.rb +0 -21
  225. data/spec/solaris11/host_spec.rb +0 -58
  226. data/spec/solaris11/ipfilter_spec.rb +0 -8
  227. data/spec/solaris11/ipnat_spec.rb +0 -8
  228. data/spec/solaris11/mail_alias_spec.rb +0 -12
  229. data/spec/solaris11/package_spec.rb +0 -100
  230. data/spec/solaris11/php_config_spec.rb +0 -36
  231. data/spec/solaris11/port_spec.rb +0 -12
  232. data/spec/solaris11/routing_table_spec.rb +0 -120
  233. data/spec/solaris11/service_spec.rb +0 -93
  234. data/spec/solaris11/svcprop_spec.rb +0 -13
  235. data/spec/solaris11/user_spec.rb +0 -57
  236. data/spec/solaris11/zfs_spec.rb +0 -18
  237. data/spec/support/powershell_command_runner.rb +0 -52
  238. data/spec/ubuntu/ppa_spec.rb +0 -25
  239. data/spec/windows/command_spec.rb +0 -67
  240. data/spec/windows/file_spec.rb +0 -161
  241. data/spec/windows/group_spec.rb +0 -28
  242. data/spec/windows/port_spec.rb +0 -31
  243. data/spec/windows/service_spec.rb +0 -31
  244. data/spec/windows/user_spec.rb +0 -44
  245. data/spec/windows/windows_hot_fix_spec.rb +0 -25
  246. data/spec/windows/windows_registry_key_spec.rb +0 -66
@@ -1,5 +0,0 @@
1
- RSpec::Matchers.define :belong_to_primary_group do |group|
2
- match do |user|
3
- user.belongs_to_primary_group?(group)
4
- end
5
- end
@@ -1,18 +0,0 @@
1
- RSpec::Matchers.define :have_site_application do |app|
2
- match do |subject|
3
- if subject.class.name == 'Serverspec::Type::IisWebsite'
4
- subject.has_site_application?(app, @pool, @physical_path)
5
- else
6
- className = subject.class.name
7
- raise "not supported class #{className}"
8
- end
9
- end
10
-
11
- chain :with_pool do |pool|
12
- @pool = pool
13
- end
14
-
15
- chain :with_physical_path do |physical_path|
16
- @physical_path = physical_path
17
- end
18
- end
@@ -1,22 +0,0 @@
1
- RSpec::Matchers.define :have_site_bindings do |port|
2
- match do |subject|
3
- if subject.class.name == 'Serverspec::Type::IisWebsite'
4
- subject.has_site_bindings?(port, @protocol, @ipaddress, @host_header)
5
- else
6
- className = subject.class.name
7
- raise "not supported class #{className}"
8
- end
9
- end
10
-
11
- chain :with_protocol do |protocol|
12
- @protocol = protocol
13
- end
14
-
15
- chain :with_ipaddress do |ipaddress|
16
- @ipaddress = ipaddress
17
- end
18
-
19
- chain :with_host_header do |host_header|
20
- @host_header = host_header
21
- end
22
- end
@@ -1,14 +0,0 @@
1
- RSpec::Matchers.define :have_virtual_dir do |vdir|
2
- match do |subject|
3
- if subject.class.name == 'Serverspec::Type::IisWebsite'
4
- subject.has_virtual_dir?(vdir, @path)
5
- else
6
- className = subject.class.name
7
- raise "not supported class #{className}"
8
- end
9
- end
10
-
11
- chain :with_path do |path|
12
- @path = path
13
- end
14
- end
@@ -1,13 +0,0 @@
1
- module Serverspec
2
- module Type
3
- class Ip6tables < Base
4
- def has_rule?(rule, table, chain)
5
- backend.check_ip6tables_rule(rule, table, chain)
6
- end
7
-
8
- def to_s
9
- 'ip6tables'
10
- end
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module Serverspec
2
- module Type
3
- class Ppa < Base
4
- def exists?
5
- backend.check_ppa(@name)
6
- end
7
-
8
- def enabled?
9
- backend.check_ppa_enabled(@name)
10
- end
11
- end
12
- end
13
- end
@@ -1,9 +0,0 @@
1
- module Serverspec
2
- module Type
3
- class WindowsScheduledTask < Base
4
- def exists?
5
- backend.check_scheduled_task(@name)
6
- end
7
- end
8
- end
9
- end
@@ -1,65 +0,0 @@
1
- require 'spec_helper'
2
-
3
- include SpecInfra::Helper::AIX
4
-
5
- describe command('cat /etc/resolv.conf') do
6
- let(:stdout) { "nameserver 127.0.0.1\r\n" }
7
- it { should return_stdout("nameserver 127.0.0.1") }
8
- its(:command) { should eq 'cat /etc/resolv.conf' }
9
- end
10
-
11
- describe 'complete matching of stdout' do
12
- context command('cat /etc/resolv.conf') do
13
- let(:stdout) { "foocontent-should-be-includedbar\r\n" }
14
- it { should_not return_stdout('content-should-be-included') }
15
- end
16
- end
17
-
18
- describe 'regexp matching of stdout' do
19
- context command('cat /etc/resolv.conf') do
20
- let(:stdout) { "nameserver 127.0.0.1\r\n" }
21
- it { should return_stdout(/127\.0\.0\.1/) }
22
- end
23
- end
24
-
25
- describe command('cat /etc/resolv.conf') do
26
- let(:stderr) { "No such file or directory\r\n" }
27
- it { should return_stderr("No such file or directory") }
28
- its(:command) { should eq 'cat /etc/resolv.conf' }
29
- end
30
-
31
- describe 'complete matching of stderr' do
32
- context command('cat /etc/resolv.conf') do
33
- let(:stderr) { "No such file or directory\r\n" }
34
- it { should_not return_stderr('file') }
35
- end
36
- end
37
-
38
- describe 'regexp matching of stderr' do
39
- context command('cat /etc/resolv.conf') do
40
- let(:stderr) { "No such file or directory\r\n" }
41
- it { should return_stderr(/file/) }
42
- end
43
- end
44
-
45
- describe command('cat /etc/resolv.conf') do
46
- it { should return_exit_status 0 }
47
- its(:command) { should eq 'cat /etc/resolv.conf' }
48
- end
49
-
50
- describe command('ls -al /') do
51
- let(:stdout) { <<EOF
52
- total 88
53
- drwxr-xr-x 23 root root 4096 Oct 10 17:19 .
54
- drwxr-xr-x 23 root root 4096 Oct 10 17:19 ..
55
- drwxr-xr-x 2 root root 4096 Sep 11 16:43 bin
56
- drwxr-xr-x 3 root root 4096 Sep 23 18:14 boot
57
- drwxr-xr-x 14 root root 4260 Oct 14 16:14 dev
58
- drwxr-xr-x 104 root root 4096 Oct 14 17:34 etc
59
- drwxr-xr-x 8 root root 4096 Oct 1 15:09 home
60
- EOF
61
- }
62
-
63
- its(:stdout) { should match /bin/ }
64
- its(:stdout) { should eq stdout }
65
- end
@@ -1,21 +0,0 @@
1
- require 'spec_helper'
2
-
3
- include SpecInfra::Helper::AIX
4
-
5
- describe cron do
6
- it { should have_entry '* * * * * /usr/local/bin/batch.sh' }
7
- its(:command) { should eq 'crontab -l | grep -v "#" -- | grep -- \\\\\\*\\ \\\\\\*\\ \\\\\\*\\ \\\\\\*\\ \\\\\\*\\ /usr/local/bin/batch.sh' }
8
- end
9
-
10
- describe cron do
11
- it { should_not have_entry 'invalid entry' }
12
- end
13
-
14
- describe cron do
15
- it { should have_entry('* * * * * /usr/local/bin/batch.sh').with_user('root') }
16
- its(:command) { should eq 'crontab -u root -l | grep -v "#" | grep -- \\\\\\*\\ \\\\\\*\\ \\\\\\*\\ \\\\\\*\\ \\\\\\*\\ /usr/local/bin/batch.sh' }
17
- end
18
-
19
- describe cron do
20
- it { should_not have_entry('* * * * * /usr/local/bin/batch.sh').with_user('invalid-user') }
21
- end
@@ -1,16 +0,0 @@
1
- require 'spec_helper'
2
-
3
- include SpecInfra::Helper::AIX
4
-
5
- describe default_gateway do
6
- let(:stdout) { "default via 192.168.1.1 dev eth1 \r\n" }
7
-
8
- its(:ipaddress) { should eq '192.168.1.1' }
9
- its(:command) { should eq "ip route | grep -E '^default |^default '" }
10
-
11
- its(:interface) { should eq 'eth1' }
12
- its(:command) { should eq "ip route | grep -E '^default |^default '" }
13
-
14
- its(:ipaddress) { should_not eq '192.168.1.2' }
15
- its(:interface) { should_not eq 'eth0' }
16
- end
@@ -1,404 +0,0 @@
1
- require 'spec_helper'
2
-
3
- include SpecInfra::Helper::AIX
4
-
5
- describe file('/etc/ssh/sshd_config') do
6
- it { should be_file }
7
- its(:command) { should eq "test -f /etc/ssh/sshd_config" }
8
- end
9
-
10
- describe file('/etc/invalid_file') do
11
- it { should_not be_file }
12
- end
13
-
14
- describe file('/etc/ssh') do
15
- it { should be_directory }
16
- its(:command) { should eq "test -d /etc/ssh" }
17
- end
18
-
19
- describe file('/etc/invalid_directory') do
20
- it { should_not be_directory }
21
- end
22
-
23
- describe file('/var/run/unicorn.sock') do
24
- it { should be_socket }
25
- its(:command) { should eq "test -S /var/run/unicorn.sock" }
26
- end
27
-
28
- describe file('/etc/invalid_socket') do
29
- it { should_not be_socket }
30
- end
31
-
32
- describe file('/etc/ssh/sshd_config') do
33
- it { should contain 'This is the sshd server system-wide configuration file' }
34
- its(:command) { should eq "grep -q -- This\\ is\\ the\\ sshd\\ server\\ system-wide\\ configuration\\ file /etc/ssh/sshd_config || grep -qF -- This\\ is\\ the\\ sshd\\ server\\ system-wide\\ configuration\\ file /etc/ssh/sshd_config" }
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
- its(:command) { should eq "grep -q -- \\^This\\ is\\ the\\ sshd\\ server\\ system-wide\\ configuration\\ file /etc/ssh/sshd_config || grep -qF -- \\^This\\ is\\ the\\ sshd\\ server\\ system-wide\\ configuration\\ file /etc/ssh/sshd_config" }
40
- end
41
-
42
- describe file('/etc/ssh/sshd_config') do
43
- it { should_not contain 'This is invalid text!!' }
44
- end
45
-
46
- describe file('Gemfile') do
47
- it { should contain('rspec').from(/^group :test do/).to(/^end/) }
48
- its(:command) { should eq "sed -n /\\^group\\ :test\\ do/,/\\^end/p Gemfile | grep -q -- rspec - || sed -n /\\^group\\ :test\\ do/,/\\^end/p Gemfile | grep -qF -- rspec -" }
49
- end
50
-
51
- describe file('/etc/ssh/sshd_config') do
52
- it { should_not contain('This is invalid text!!').from(/^group :test do/).to(/^end/) }
53
- end
54
-
55
- describe file('Gemfile') do
56
- it { should contain('rspec').after(/^group :test do/) }
57
- its(:command) { should eq "sed -n /\\^group\\ :test\\ do/,\\$p Gemfile | grep -q -- rspec - || sed -n /\\^group\\ :test\\ do/,\\$p Gemfile | grep -qF -- rspec -" }
58
- end
59
-
60
- describe file('/etc/ssh/sshd_config') do
61
- it { should_not contain('This is invalid text!!').after(/^group :test do/) }
62
- end
63
-
64
- describe file('Gemfile') do
65
- it { should contain('rspec').before(/^end/) }
66
- its(:command) { should eq "sed -n 1,/\\^end/p Gemfile | grep -q -- rspec - || sed -n 1,/\\^end/p Gemfile | grep -qF -- rspec -" }
67
- end
68
-
69
- describe file('/etc/ssh/sshd_config') do
70
- it { should_not contain('This is invalid text!!').before(/^end/) }
71
- end
72
-
73
- describe file('/etc/passwd') do
74
- it { should be_owned_by 'root' }
75
- its(:command) { should eq "ls -al /etc/passwd | awk '{print $3}' | grep -- \\^root\\$" }
76
- end
77
-
78
- describe file('/etc/passwd') do
79
- it { should_not be_owned_by 'invalid-owner' }
80
- end
81
-
82
- describe file('/etc/passwd') do
83
- it { should be_grouped_into 'root' }
84
- its(:command) { should eq "ls -al /etc/passwd | awk '{print $4}' | grep -- \\^root\\$" }
85
- end
86
-
87
- describe file('/etc/passwd') do
88
- it { should_not be_grouped_into 'invalid-group' }
89
- end
90
-
91
- describe file('/etc/pam.d/system-auth') do
92
- it { should be_linked_to '/etc/pam.d/system-auth-ac' }
93
- its(:command) { should eq "stat -c %N /etc/pam.d/system-auth | egrep -e \"-> ./etc/pam.d/system-auth-ac.\"" }
94
- end
95
-
96
- describe file('dummy-link') do
97
- it { should_not be_linked_to '/invalid/target' }
98
- end
99
-
100
- describe file('/dev') do
101
- let(:stdout) { "755\r\n" }
102
- it { should be_readable }
103
- its(:command) { should eq "stat -c %a /dev" }
104
- end
105
-
106
- describe file('/dev') do
107
- let(:stdout) { "333\r\n" }
108
- it { should_not be_readable }
109
- end
110
-
111
- describe file('/dev') do
112
- let(:stdout) { "400\r\n" }
113
- it { should be_readable.by('owner') }
114
- end
115
-
116
- describe file('/dev') do
117
- let(:stdout) { "044\r\n" }
118
- it { should_not be_readable.by('owner') }
119
- end
120
-
121
- describe file('/dev') do
122
- let(:stdout) { "040\r\n" }
123
- it { should be_readable.by('group') }
124
- end
125
-
126
- describe file('/dev') do
127
- let(:stdout) { "404\r\n" }
128
- it { should_not be_readable.by('group') }
129
- end
130
-
131
- describe file('/dev') do
132
- let(:stdout) { "044\r\n" }
133
- it { should be_readable.by('others') }
134
- end
135
-
136
- describe file('/dev') do
137
- let(:stdout) { "443\r\n" }
138
- it { should_not be_readable.by('others') }
139
- end
140
-
141
- describe file('/tmp') do
142
- it { should be_readable.by_user('mail') }
143
- its(:command) { should eq "su -s sh -c \"test -r /tmp\" mail" }
144
- end
145
-
146
- describe file('/tmp') do
147
- it { should_not be_readable.by_user('invalid-user') }
148
- end
149
-
150
- describe file('/dev') do
151
- let(:stdout) { "755\r\n" }
152
- it { should be_writable }
153
- its(:command) { should eq "stat -c %a /dev" }
154
- end
155
-
156
- describe file('/dev') do
157
- let(:stdout) { "555\r\n" }
158
- it { should_not be_writable }
159
- end
160
-
161
- describe file('/dev') do
162
- let(:stdout) { "200\r\n" }
163
- it { should be_writable.by('owner') }
164
- end
165
-
166
- describe file('/dev') do
167
- let(:stdout) { "555\r\n" }
168
- it { should_not be_writable.by('owner') }
169
- end
170
-
171
- describe file('/dev') do
172
- let(:stdout) { "030\r\n" }
173
- it { should be_writable.by('group') }
174
- end
175
-
176
- describe file('/dev') do
177
- let(:stdout) { "555\r\n" }
178
- it { should_not be_writable.by('group') }
179
- end
180
-
181
- describe file('/dev') do
182
- let(:stdout) { "666\r\n" }
183
- it { should be_writable.by('others') }
184
- end
185
-
186
- describe file('/dev') do
187
- let(:stdout) { "555\r\n" }
188
- it { should_not be_writable.by('others') }
189
- end
190
-
191
- describe file('/tmp') do
192
- it { should be_writable.by_user('mail') }
193
- its(:command) { should eq "su -s sh -c \"test -w /tmp\" mail" }
194
- end
195
-
196
- describe file('/tmp') do
197
- it { should_not be_writable.by_user('invalid-user') }
198
- end
199
-
200
- describe file('/dev') do
201
- let(:stdout) { "755\r\n" }
202
- it { should be_executable }
203
- its(:command) { should eq "stat -c %a /dev" }
204
- end
205
-
206
- describe file('/dev') do
207
- let(:stdout) { "666\r\n" }
208
- it { should_not be_executable }
209
- end
210
-
211
- describe file('/dev') do
212
- let(:stdout) { "100\r\n" }
213
- it { should be_executable.by('owner') }
214
- end
215
-
216
- describe file('/dev') do
217
- let(:stdout) { "666\r\n" }
218
- it { should_not be_executable.by('owner') }
219
- end
220
-
221
- describe file('/dev') do
222
- let(:stdout) { "070\r\n" }
223
- it { should be_executable.by('group') }
224
- end
225
-
226
- describe file('/dev') do
227
- let(:stdout) { "666\r\n" }
228
- it { should_not be_executable.by('group') }
229
- end
230
-
231
- describe file('/dev') do
232
- let(:stdout) { "001\r\n" }
233
- it { should be_executable.by('others') }
234
- end
235
-
236
- describe file('/dev') do
237
- let(:stdout) { "666\r\n" }
238
- it { should_not be_executable.by('others') }
239
- end
240
-
241
- describe file('/tmp') do
242
- it { should be_executable.by_user('mail') }
243
- its(:command) { should eq "su -s sh -c \"test -x /tmp\" mail" }
244
- end
245
-
246
- describe file('/tmp') do
247
- it { should_not be_executable.by_user('invalid-user') }
248
- end
249
-
250
- describe file('/') do
251
- it { should be_mounted }
252
- its(:command) { should eq "mount | grep -w -- on\\ /" }
253
- end
254
-
255
- describe file('/etc/invalid-mount') do
256
- it { should_not be_mounted }
257
- end
258
-
259
- describe file('/') do
260
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
261
- it { should be_mounted.with( :type => 'ext4' ) }
262
- end
263
-
264
- describe file('/') do
265
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
266
- it { should be_mounted.with( :type => 'ext4', :options => { :rw => true } ) }
267
- end
268
-
269
- describe file('/') do
270
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
271
- it { should be_mounted.with( :type => 'ext4', :options => { :mode => 620 } ) }
272
- end
273
-
274
- describe file('/') do
275
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
276
- it { should be_mounted.with( :type => 'ext4', :device => '/dev/mapper/VolGroup-lv_root' ) }
277
- end
278
-
279
- describe file('/') do
280
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
281
- it { should_not be_mounted.with( :type => 'xfs' ) }
282
- end
283
-
284
- describe file('/') do
285
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
286
- it { should_not be_mounted.with( :type => 'ext4', :options => { :rw => false } ) }
287
- end
288
-
289
- describe file('/') do
290
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
291
- it { should_not be_mounted.with( :type => 'ext4', :options => { :mode => 600 } ) }
292
- end
293
-
294
- describe file('/') do
295
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
296
- it { should_not be_mounted.with( :type => 'xfs', :device => '/dev/mapper/VolGroup-lv_root' ) }
297
- end
298
-
299
- describe file('/') do
300
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
301
- it { should_not be_mounted.with( :type => 'ext4', :device => '/dev/mapper/VolGroup-lv_r00t' ) }
302
- end
303
-
304
- describe file('/etc/invalid-mount') do
305
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
306
- it { should_not be_mounted.with( :type => 'ext4' ) }
307
- end
308
-
309
- describe file('/') do
310
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
311
- it do
312
- should be_mounted.only_with(
313
- :device => '/dev/mapper/VolGroup-lv_root',
314
- :type => 'ext4',
315
- :options => {
316
- :rw => true,
317
- :mode => 620,
318
- }
319
- )
320
- end
321
- end
322
-
323
- describe file('/') do
324
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
325
- it do
326
- should_not be_mounted.only_with(
327
- :device => '/dev/mapper/VolGroup-lv_root',
328
- :type => 'ext4',
329
- :options => {
330
- :rw => true,
331
- :mode => 620,
332
- :bind => true,
333
- }
334
- )
335
- end
336
- end
337
-
338
- describe file('/') do
339
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
340
- it do
341
- should_not be_mounted.only_with(
342
- :device => '/dev/mapper/VolGroup-lv_root',
343
- :type => 'ext4',
344
- :options => {
345
- :rw => true,
346
- }
347
- )
348
- end
349
- end
350
-
351
- describe file('/') do
352
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
353
- it do
354
- should_not be_mounted.only_with(
355
- :device => '/dev/mapper/VolGroup-lv_roooooooooot',
356
- :type => 'ext4',
357
- :options => {
358
- :rw => true,
359
- :mode => 620,
360
- }
361
- )
362
- end
363
- end
364
-
365
- describe file('/etc/invalid-mount') do
366
- let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
367
- it { should_not be_mounted.only_with( :type => 'ext4' ) }
368
- end
369
-
370
- describe file('/etc/services') do
371
- it { should match_md5checksum '35435ea447c19f0ea5ef971837ab9ced' }
372
- its(:command) { should eq "md5sum /etc/services | grep -iw -- \\^35435ea447c19f0ea5ef971837ab9ced" }
373
- end
374
-
375
- describe file('invalid-file') do
376
- it { should_not match_md5checksum 'INVALIDMD5CHECKSUM' }
377
- end
378
-
379
- describe file('/etc/services') do
380
- it { should match_sha256checksum '0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a' }
381
- its(:command) { should eq "sha256sum /etc/services | grep -iw -- \\^0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a" }
382
- end
383
-
384
- describe file('invalid-file') do
385
- it { should_not match_sha256checksum 'INVALIDSHA256CHECKSUM' }
386
- end
387
-
388
- describe file('/etc/passwd') do
389
- let(:stdout) {<<EOF
390
- root:x:0:0:root:/root:/bin/bash
391
- bin:x:1:1:bin:/bin:/sbin/nologin
392
- daemon:x:2:2:daemon:/sbin:/sbin/nologin
393
- sync:x:5:0:sync:/sbin:/bin/sync
394
- shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
395
- halt:x:7:0:halt:/sbin:/sbin/halt
396
- mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
397
- operator:x:11:0:operator:/root:/sbin/nologin
398
- nobody:x:99:99:Nobody:/:/sbin/nologin
399
- dbus:x:81:81:System message bus:/:/sbin/nologin
400
- EOF
401
- }
402
-
403
- its(:content) { should match /root:x:0:0/ }
404
- end