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.
Files changed (205) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +26 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +19 -0
  5. data/Gemfile +8 -0
  6. data/Guardfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +26 -0
  9. data/Rakefile +30 -0
  10. data/WINDOWS_SUPPORT.md +118 -0
  11. data/appveyor.yml +56 -0
  12. data/bin/serverspec-init +7 -0
  13. data/lib/serverspec.rb +63 -0
  14. data/lib/serverspec/commands/base.rb +7 -0
  15. data/lib/serverspec/helper.rb +8 -0
  16. data/lib/serverspec/helper/type.rb +26 -0
  17. data/lib/serverspec/matcher.rb +39 -0
  18. data/lib/serverspec/matcher/be_enabled.rb +13 -0
  19. data/lib/serverspec/matcher/be_enforcing.rb +10 -0
  20. data/lib/serverspec/matcher/be_executable.rb +13 -0
  21. data/lib/serverspec/matcher/be_installed.rb +13 -0
  22. data/lib/serverspec/matcher/be_listening.rb +13 -0
  23. data/lib/serverspec/matcher/be_mounted.rb +15 -0
  24. data/lib/serverspec/matcher/be_permissive.rb +10 -0
  25. data/lib/serverspec/matcher/be_reachable.rb +17 -0
  26. data/lib/serverspec/matcher/be_readable.rb +13 -0
  27. data/lib/serverspec/matcher/be_resolvable.rb +9 -0
  28. data/lib/serverspec/matcher/be_running.rb +13 -0
  29. data/lib/serverspec/matcher/be_writable.rb +13 -0
  30. data/lib/serverspec/matcher/belong_to_group.rb +5 -0
  31. data/lib/serverspec/matcher/belong_to_primary_group.rb +5 -0
  32. data/lib/serverspec/matcher/contain.rb +28 -0
  33. data/lib/serverspec/matcher/have_entry.rb +14 -0
  34. data/lib/serverspec/matcher/have_rule.rb +17 -0
  35. data/lib/serverspec/matcher/have_site_application.rb +18 -0
  36. data/lib/serverspec/matcher/have_site_bindings.rb +22 -0
  37. data/lib/serverspec/matcher/have_virtual_dir.rb +14 -0
  38. data/lib/serverspec/power_assert.rb +14 -0
  39. data/lib/serverspec/setup.rb +338 -0
  40. data/lib/serverspec/subject.rb +12 -0
  41. data/lib/serverspec/type/base.rb +30 -0
  42. data/lib/serverspec/type/bond.rb +11 -0
  43. data/lib/serverspec/type/bridge.rb +11 -0
  44. data/lib/serverspec/type/cgroup.rb +17 -0
  45. data/lib/serverspec/type/command.rb +20 -0
  46. data/lib/serverspec/type/cron.rb +15 -0
  47. data/lib/serverspec/type/default_gateway.rb +15 -0
  48. data/lib/serverspec/type/docker_base.rb +29 -0
  49. data/lib/serverspec/type/docker_container.rb +27 -0
  50. data/lib/serverspec/type/docker_image.rb +4 -0
  51. data/lib/serverspec/type/file.rb +133 -0
  52. data/lib/serverspec/type/fstab.rb +11 -0
  53. data/lib/serverspec/type/group.rb +11 -0
  54. data/lib/serverspec/type/host.rb +21 -0
  55. data/lib/serverspec/type/iis_app_pool.rb +43 -0
  56. data/lib/serverspec/type/iis_website.rb +40 -0
  57. data/lib/serverspec/type/interface.rb +27 -0
  58. data/lib/serverspec/type/ip6tables.rb +13 -0
  59. data/lib/serverspec/type/ipfilter.rb +11 -0
  60. data/lib/serverspec/type/ipnat.rb +11 -0
  61. data/lib/serverspec/type/iptables.rb +11 -0
  62. data/lib/serverspec/type/kernel_module.rb +7 -0
  63. data/lib/serverspec/type/linux_audit_system.rb +45 -0
  64. data/lib/serverspec/type/linux_kernel_parameter.rb +10 -0
  65. data/lib/serverspec/type/lxc.rb +15 -0
  66. data/lib/serverspec/type/mail_alias.rb +7 -0
  67. data/lib/serverspec/type/mysql_config.rb +10 -0
  68. data/lib/serverspec/type/package.rb +66 -0
  69. data/lib/serverspec/type/php_config.rb +10 -0
  70. data/lib/serverspec/type/port.rb +40 -0
  71. data/lib/serverspec/type/ppa.rb +11 -0
  72. data/lib/serverspec/type/process.rb +27 -0
  73. data/lib/serverspec/type/routing_table.rb +11 -0
  74. data/lib/serverspec/type/selinux.rb +19 -0
  75. data/lib/serverspec/type/selinux_module.rb +11 -0
  76. data/lib/serverspec/type/service.rb +52 -0
  77. data/lib/serverspec/type/user.rb +43 -0
  78. data/lib/serverspec/type/windows_feature.rb +7 -0
  79. data/lib/serverspec/type/windows_hot_fix.rb +7 -0
  80. data/lib/serverspec/type/windows_registry_key.rb +19 -0
  81. data/lib/serverspec/type/windows_scheduled_task.rb +7 -0
  82. data/lib/serverspec/type/x509_certificate.rb +76 -0
  83. data/lib/serverspec/type/x509_private_key.rb +21 -0
  84. data/lib/serverspec/type/yumrepo.rb +11 -0
  85. data/lib/serverspec/type/zfs.rb +29 -0
  86. data/lib/serverspec/version.rb +3 -0
  87. data/serverspec.gemspec +28 -0
  88. data/spec/helper/type_spec.rb +6 -0
  89. data/spec/spec_helper.rb +28 -0
  90. data/spec/type/aix/file_spec.rb +31 -0
  91. data/spec/type/aix/group_spec.rb +7 -0
  92. data/spec/type/aix/package_spec.rb +7 -0
  93. data/spec/type/aix/port_spec.rb +20 -0
  94. data/spec/type/aix/service_spec.rb +12 -0
  95. data/spec/type/aix/user_spec.rb +16 -0
  96. data/spec/type/arch/file_spec.rb +15 -0
  97. data/spec/type/arch/package_spec.rb +19 -0
  98. data/spec/type/arch/service_spec.rb +9 -0
  99. data/spec/type/base/command_spec.rb +67 -0
  100. data/spec/type/base/cron_spec.rb +11 -0
  101. data/spec/type/base/default_gateway_spec.rb +11 -0
  102. data/spec/type/base/file_spec.rb +356 -0
  103. data/spec/type/base/group_spec.rb +11 -0
  104. data/spec/type/base/host_spec.rb +47 -0
  105. data/spec/type/base/mail_alias_spec.rb +7 -0
  106. data/spec/type/base/mysql_config_spec.rb +13 -0
  107. data/spec/type/base/package_spec.rb +51 -0
  108. data/spec/type/base/php_config_spec.rb +33 -0
  109. data/spec/type/base/port_spec.rb +34 -0
  110. data/spec/type/base/process_spec.rb +35 -0
  111. data/spec/type/base/routing_table_spec.rb +63 -0
  112. data/spec/type/base/service_spec.rb +49 -0
  113. data/spec/type/base/user_spec.rb +44 -0
  114. data/spec/type/darwin/file_spec.rb +41 -0
  115. data/spec/type/darwin/package_spec.rb +19 -0
  116. data/spec/type/darwin/port_spec.rb +27 -0
  117. data/spec/type/darwin/service_spec.rb +16 -0
  118. data/spec/type/debian/package_spec.rb +23 -0
  119. data/spec/type/debian/service_spec.rb +11 -0
  120. data/spec/type/fedora/service_spec.rb +15 -0
  121. data/spec/type/fedora15/service_spec.rb +15 -0
  122. data/spec/type/fedora20/service_spec.rb +15 -0
  123. data/spec/type/freebsd/file_spec.rb +29 -0
  124. data/spec/type/freebsd/package_spec.rb +19 -0
  125. data/spec/type/freebsd/port_spec.rb +27 -0
  126. data/spec/type/freebsd/service_spec.rb +8 -0
  127. data/spec/type/freebsd10/package_spec.rb +19 -0
  128. data/spec/type/gentoo/package_spec.rb +7 -0
  129. data/spec/type/gentoo/service_spec.rb +12 -0
  130. data/spec/type/linux/bond_spec.rb +12 -0
  131. data/spec/type/linux/bridge_spec.rb +12 -0
  132. data/spec/type/linux/cgroup_spec.rb +13 -0
  133. data/spec/type/linux/docker_container_pre_1_8_spec.rb +124 -0
  134. data/spec/type/linux/docker_container_spec.rb +126 -0
  135. data/spec/type/linux/docker_image_spec.rb +94 -0
  136. data/spec/type/linux/file_spec.rb +27 -0
  137. data/spec/type/linux/fstab_spec.rb +31 -0
  138. data/spec/type/linux/interface_spec.rb +30 -0
  139. data/spec/type/linux/ip6tables_spec.rb +19 -0
  140. data/spec/type/linux/iptables_spec.rb +11 -0
  141. data/spec/type/linux/kernel_module_spec.rb +7 -0
  142. data/spec/type/linux/linux_audit_system_spec.rb +139 -0
  143. data/spec/type/linux/linux_kernel_parameter_spec.rb +33 -0
  144. data/spec/type/linux/lxc_container_spec.rb +12 -0
  145. data/spec/type/linux/selinux_module_spec.rb +11 -0
  146. data/spec/type/linux/selinux_spec.rb +23 -0
  147. data/spec/type/linux/x509_certificate_spec.rb +62 -0
  148. data/spec/type/linux/x509_private_key_spec.rb +31 -0
  149. data/spec/type/linux/zfs_spec.rb +15 -0
  150. data/spec/type/nixos/package_spec.rb +15 -0
  151. data/spec/type/nixos/service_spec.rb +9 -0
  152. data/spec/type/openbsd/file_spec.rb +134 -0
  153. data/spec/type/openbsd/interface_spec.rb +21 -0
  154. data/spec/type/openbsd/mail_alias_spec.rb +7 -0
  155. data/spec/type/openbsd/package_spec.rb +11 -0
  156. data/spec/type/openbsd/port_spec.rb +7 -0
  157. data/spec/type/openbsd/service_spec.rb +13 -0
  158. data/spec/type/openbsd/user_spec.rb +12 -0
  159. data/spec/type/opensuse/service_spec.rb +16 -0
  160. data/spec/type/plamo/package_spec.rb +8 -0
  161. data/spec/type/plamo/service_spec.rb +8 -0
  162. data/spec/type/redhat/file_spec.rb +19 -0
  163. data/spec/type/redhat/package_spec.rb +23 -0
  164. data/spec/type/redhat/service_spec.rb +11 -0
  165. data/spec/type/redhat/yumrepo_spec.rb +11 -0
  166. data/spec/type/redhat5/iptables_spec.rb +11 -0
  167. data/spec/type/redhat7/service_spec.rb +9 -0
  168. data/spec/type/smartos/package_spec.rb +19 -0
  169. data/spec/type/smartos/service_spec.rb +16 -0
  170. data/spec/type/solaris/cron_spec.rb +11 -0
  171. data/spec/type/solaris/file_spec.rb +15 -0
  172. data/spec/type/solaris/group_spec.rb +7 -0
  173. data/spec/type/solaris/host_spec.rb +19 -0
  174. data/spec/type/solaris/ipfilter_spec.rb +7 -0
  175. data/spec/type/solaris/ipnat_spec.rb +7 -0
  176. data/spec/type/solaris/package_spec.rb +7 -0
  177. data/spec/type/solaris/port_spec.rb +34 -0
  178. data/spec/type/solaris/service_spec.rb +16 -0
  179. data/spec/type/solaris/user_spec.rb +16 -0
  180. data/spec/type/solaris/zfs_spec.rb +15 -0
  181. data/spec/type/solaris10/file_spec.rb +313 -0
  182. data/spec/type/solaris10/group_spec.rb +8 -0
  183. data/spec/type/solaris10/host_spec.rb +16 -0
  184. data/spec/type/solaris10/package_spec.rb +8 -0
  185. data/spec/type/solaris10/user_spec.rb +8 -0
  186. data/spec/type/suse/package_spec.rb +23 -0
  187. data/spec/type/suse/service_spec.rb +11 -0
  188. data/spec/type/ubuntu/ppa_spec.rb +11 -0
  189. data/spec/type/ubuntu/service_spec.rb +7 -0
  190. data/spec/type/windows/command_spec.rb +64 -0
  191. data/spec/type/windows/feature_spec.rb +17 -0
  192. data/spec/type/windows/file_spec.rb +120 -0
  193. data/spec/type/windows/group_spec.rb +23 -0
  194. data/spec/type/windows/host_spec.rb +32 -0
  195. data/spec/type/windows/hot_fix_spec.rb +22 -0
  196. data/spec/type/windows/iis_app_pool_spec.rb +17 -0
  197. data/spec/type/windows/iis_webisite_spec.rb +16 -0
  198. data/spec/type/windows/package_spec.rb +10 -0
  199. data/spec/type/windows/port_spec.rb +25 -0
  200. data/spec/type/windows/registry_key_spec.rb +58 -0
  201. data/spec/type/windows/scheduled_task_spec.rb +9 -0
  202. data/spec/type/windows/service_spec.rb +30 -0
  203. data/spec/type/windows/user_spec.rb +33 -0
  204. data/wercker.yml +1 -0
  205. metadata +450 -0
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'redhat'
4
+
5
+ describe yumrepo('epel') do
6
+ it { should exist }
7
+ end
8
+
9
+ describe yumrepo('epel') do
10
+ it { should be_enabled }
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'redhat', :release => 5
4
+
5
+ describe iptables do
6
+ it { should have_rule '-P INPUT ACCEPT' }
7
+ end
8
+
9
+ describe iptables do
10
+ it { should have_rule('-P INPUT ACCEPT').with_table('mangle').with_chain('INPUT') }
11
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'redhat', :release => 7
4
+
5
+ describe service('sshd') do
6
+ it { should be_enabled }
7
+ it { should be_running }
8
+ end
9
+
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'smartos'
4
+
5
+ describe package('httpd') do
6
+ it { should be_installed }
7
+ end
8
+
9
+ describe package('httpd') do
10
+ it { should be_installed.with_version('2.2.15-28.el6') }
11
+ end
12
+
13
+ describe package('httpd') do
14
+ let(:stdout) { "2.2.15\n" }
15
+ its(:version) { should eq '2.2.15' }
16
+ its(:version) { should > '2.2.14' }
17
+ its(:version) { should < '2.2.16' }
18
+ its(:version) { should > '2.2.9' }
19
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'smartos'
4
+
5
+ describe service('sshd') do
6
+ it { should be_enabled }
7
+ end
8
+
9
+ describe service('sshd') do
10
+ it { should be_running }
11
+ end
12
+
13
+ describe service('sshd') do
14
+ it { should have_property :foo => 'bar' }
15
+ end
16
+
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe cron do
6
+ it { should have_entry '* * * * * /usr/local/bin/batch.sh' }
7
+ end
8
+
9
+ describe cron do
10
+ it { should have_entry('* * * * * /usr/local/bin/batch.sh').with_user('root') }
11
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe file('/tmp') do
6
+ it { should be_readable.by_user('mail') }
7
+ end
8
+
9
+ describe file('/tmp') do
10
+ it { should be_writable.by_user('mail') }
11
+ end
12
+
13
+ describe file('/tmp') do
14
+ it { should be_executable.by_user('mail') }
15
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe group('root') do
6
+ it { should have_gid 0 }
7
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe host('127.0.0.1') do
6
+ it { should be_reachable }
7
+ end
8
+
9
+ describe host('127.0.0.1') do
10
+ it { should be_reachable.with(:proto => 'icmp', :timeout=> 1) }
11
+ end
12
+
13
+ describe host('127.0.0.1') do
14
+ it { should be_reachable.with(:proto => 'tcp', :port => 22, :timeout=> 1) }
15
+ end
16
+
17
+ describe host('127.0.0.1') do
18
+ it { should be_reachable.with(:proto => 'udp', :port => 53, :timeout=> 1) }
19
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe ipfilter do
6
+ it { should have_rule 'pass in quick on lo0 all' }
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe ipnat do
6
+ it { should have_rule 'map net1 192.168.0.0/24 -> 0.0.0.0/32' }
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe package('httpd') do
6
+ it { should be_installed }
7
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe port(80) do
6
+ it { should be_listening }
7
+ end
8
+
9
+ describe port(80) do
10
+ it { should be_listening.with('tcp') }
11
+ end
12
+
13
+ describe port(80) do
14
+ it do
15
+ expect {
16
+ should be_listening.with('not implemented')
17
+ }.to raise_error(ArgumentError, %r/\A`be_listening` matcher doesn\'t support/)
18
+ end
19
+ end
20
+
21
+ describe port(80) do
22
+ it { should be_listening.on('127.0.0.1') }
23
+ end
24
+
25
+ describe port(80) do
26
+ it do
27
+ expect{ should be_listening.on('') }.to raise_error(ArgumentError)
28
+ end
29
+ end
30
+
31
+ describe port(123) do
32
+ it { should be_listening.with('udp') }
33
+ end
34
+
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe service('sshd') do
6
+ it { should be_enabled }
7
+ end
8
+
9
+ describe service('sshd') do
10
+ it { should be_running }
11
+ end
12
+
13
+ describe service('sshd') do
14
+ it { should have_property :foo => 'bar' }
15
+ end
16
+
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe user('root') do
6
+ it { should belong_to_group 'root' }
7
+ end
8
+
9
+ describe user('root') do
10
+ it { should have_login_shell '/bin/bash' }
11
+ end
12
+
13
+ describe user('root') do
14
+ it { should have_home_directory '/root' }
15
+ end
16
+
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris'
4
+
5
+ describe zfs('rpool') do
6
+ it { should exist }
7
+ end
8
+
9
+ describe zfs('rpool') do
10
+ it { should have_property 'mountpoint' => '/rpool' }
11
+ end
12
+
13
+ describe zfs('rpool') do
14
+ it { should have_property 'mountpoint' => '/rpool', 'compression' => 'off' }
15
+ end
@@ -0,0 +1,313 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, :family => 'solaris', :release => 10
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('/etc/ssh/sshd_config') do
18
+ it { should contain 'This is the sshd server system-wide configuration file' }
19
+ end
20
+
21
+ describe file('/etc/ssh/sshd_config') do
22
+ it { should contain /^This is the sshd server system-wide configuration file/ }
23
+ end
24
+
25
+ describe file('Gemfile') do
26
+ it { should contain('rspec').from(/^group :test do/).to(/^end/) }
27
+ end
28
+
29
+ describe file('Gemfile') do
30
+ it { should contain('rspec').after(/^group :test do/) }
31
+ end
32
+
33
+ describe file('Gemfile') do
34
+ it { should contain('rspec').before(/^end/) }
35
+ end
36
+
37
+ describe file('/etc/passwd') do
38
+ it { should be_mode 644 }
39
+ end
40
+
41
+ describe file('/etc/passwd') do
42
+ it { should be_owned_by 'root' }
43
+ end
44
+
45
+ describe file('/etc/passwd') do
46
+ it { should be_grouped_into 'root' }
47
+ end
48
+
49
+ describe file('/etc/pam.d/system-auth') do
50
+ it { should be_linked_to '/etc/pam.d/system-auth-ac' }
51
+ end
52
+
53
+ describe file('/dev') do
54
+ let(:stdout) { "755\r\n" }
55
+ it { should be_readable }
56
+ end
57
+
58
+ describe file('/dev') do
59
+ let(:stdout) { "333\r\n" }
60
+ it { should_not be_readable }
61
+ end
62
+
63
+ describe file('/dev') do
64
+ let(:stdout) { "400\r\n" }
65
+ it { should be_readable.by('owner') }
66
+ end
67
+
68
+ describe file('/dev') do
69
+ let(:stdout) { "044\r\n" }
70
+ it { should_not be_readable.by('owner') }
71
+ end
72
+
73
+ describe file('/dev') do
74
+ let(:stdout) { "040\r\n" }
75
+ it { should be_readable.by('group') }
76
+ end
77
+
78
+ describe file('/dev') do
79
+ let(:stdout) { "404\r\n" }
80
+ it { should_not be_readable.by('group') }
81
+ end
82
+
83
+ describe file('/dev') do
84
+ let(:stdout) { "044\r\n" }
85
+ it { should be_readable.by('others') }
86
+ end
87
+
88
+ describe file('/dev') do
89
+ let(:stdout) { "443\r\n" }
90
+ it { should_not be_readable.by('others') }
91
+ end
92
+
93
+ describe file('/dev') do
94
+ let(:stdout) { "755\r\n" }
95
+ it { should be_writable }
96
+ end
97
+
98
+ describe file('/dev') do
99
+ let(:stdout) { "555\r\n" }
100
+ it { should_not be_writable }
101
+ end
102
+
103
+ describe file('/dev') do
104
+ let(:stdout) { "200\r\n" }
105
+ it { should be_writable.by('owner') }
106
+ end
107
+
108
+ describe file('/dev') do
109
+ let(:stdout) { "555\r\n" }
110
+ it { should_not be_writable.by('owner') }
111
+ end
112
+
113
+ describe file('/dev') do
114
+ let(:stdout) { "030\r\n" }
115
+ it { should be_writable.by('group') }
116
+ end
117
+
118
+ describe file('/dev') do
119
+ let(:stdout) { "555\r\n" }
120
+ it { should_not be_writable.by('group') }
121
+ end
122
+
123
+ describe file('/dev') do
124
+ let(:stdout) { "666\r\n" }
125
+ it { should be_writable.by('others') }
126
+ end
127
+
128
+ describe file('/dev') do
129
+ let(:stdout) { "555\r\n" }
130
+ it { should_not be_writable.by('others') }
131
+ end
132
+
133
+
134
+ describe file('/dev') do
135
+ let(:stdout) { "755\r\n" }
136
+ it { should be_executable }
137
+ end
138
+
139
+ describe file('/dev') do
140
+ let(:stdout) { "666\r\n" }
141
+ it { should_not be_executable }
142
+ end
143
+
144
+ describe file('/dev') do
145
+ let(:stdout) { "100\r\n" }
146
+ it { should be_executable.by('owner') }
147
+ end
148
+
149
+ describe file('/dev') do
150
+ let(:stdout) { "666\r\n" }
151
+ it { should_not be_executable.by('owner') }
152
+ end
153
+
154
+ describe file('/dev') do
155
+ let(:stdout) { "070\r\n" }
156
+ it { should be_executable.by('group') }
157
+ end
158
+
159
+ describe file('/dev') do
160
+ let(:stdout) { "666\r\n" }
161
+ it { should_not be_executable.by('group') }
162
+ end
163
+
164
+ describe file('/dev') do
165
+ let(:stdout) { "001\r\n" }
166
+ it { should be_executable.by('others') }
167
+ end
168
+
169
+ describe file('/dev') do
170
+ let(:stdout) { "666\r\n" }
171
+ it { should_not be_executable.by('others') }
172
+ end
173
+
174
+ describe file('/') do
175
+ it { should be_mounted }
176
+ end
177
+
178
+ describe file('/') do
179
+ let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
180
+ it { should be_mounted.with( :type => 'ext4' ) }
181
+ end
182
+
183
+ describe file('/') do
184
+ let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
185
+ it { should be_mounted.with( :type => 'ext4', :options => { :rw => true } ) }
186
+ end
187
+
188
+ describe file('/') do
189
+ let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
190
+ it { should be_mounted.with( :type => 'ext4', :options => { :mode => 620 } ) }
191
+ end
192
+
193
+ describe file('/') do
194
+ let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
195
+ it { should be_mounted.with( :type => 'ext4', :device => '/dev/mapper/VolGroup-lv_root' ) }
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_not be_mounted.with( :type => 'xfs' ) }
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_not be_mounted.with( :type => 'ext4', :options => { :rw => false } ) }
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_not be_mounted.with( :type => 'ext4', :options => { :mode => 600 } ) }
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_not be_mounted.with( :type => 'xfs', :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 => 'ext4', :device => '/dev/mapper/VolGroup-lv_r00t' ) }
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 do
226
+ should be_mounted.only_with(
227
+ :device => '/dev/mapper/VolGroup-lv_root',
228
+ :type => 'ext4',
229
+ :options => {
230
+ :rw => true,
231
+ :mode => 620,
232
+ }
233
+ )
234
+ end
235
+ end
236
+
237
+ describe file('/') do
238
+ let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
239
+ it do
240
+ should_not be_mounted.only_with(
241
+ :device => '/dev/mapper/VolGroup-lv_root',
242
+ :type => 'ext4',
243
+ :options => {
244
+ :rw => true,
245
+ :mode => 620,
246
+ :bind => true,
247
+ }
248
+ )
249
+ end
250
+ end
251
+
252
+ describe file('/') do
253
+ let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
254
+ it do
255
+ should_not be_mounted.only_with(
256
+ :device => '/dev/mapper/VolGroup-lv_root',
257
+ :type => 'ext4',
258
+ :options => {
259
+ :rw => true,
260
+ }
261
+ )
262
+ end
263
+ end
264
+
265
+ describe file('/') do
266
+ let(:stdout) { "/dev/mapper/VolGroup-lv_root on / type ext4 (rw,mode=620)\r\n" }
267
+ it do
268
+ should_not be_mounted.only_with(
269
+ :device => '/dev/mapper/VolGroup-lv_roooooooooot',
270
+ :type => 'ext4',
271
+ :options => {
272
+ :rw => true,
273
+ :mode => 620,
274
+ }
275
+ )
276
+ end
277
+ end
278
+
279
+ describe file('/etc/services') do
280
+ let(:stdout) { "35435ea447c19f0ea5ef971837ab9ced\n" }
281
+ its(:md5sum) { should eq '35435ea447c19f0ea5ef971837ab9ced' }
282
+ end
283
+
284
+ describe file('/etc/services') do
285
+ let(:stdout) {"0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a" }
286
+ its(:md5sum) { should eq '0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a' }
287
+ end
288
+
289
+ describe file('/etc/passwd') do
290
+ let(:stdout) {<<EOF
291
+ root:x:0:0:root:/root:/bin/bash
292
+ bin:x:1:1:bin:/bin:/sbin/nologin
293
+ daemon:x:2:2:daemon:/sbin:/sbin/nologin
294
+ sync:x:5:0:sync:/sbin:/bin/sync
295
+ shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
296
+ halt:x:7:0:halt:/sbin:/sbin/halt
297
+ mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
298
+ operator:x:11:0:operator:/root:/sbin/nologin
299
+ nobody:x:99:99:Nobody:/:/sbin/nologin
300
+ dbus:x:81:81:System message bus:/:/sbin/nologin
301
+ EOF
302
+ }
303
+
304
+ its(:content) { should match /root:x:0:0/ }
305
+ end
306
+
307
+ describe file('/etc/passwd') do
308
+ it 'be_immutable is not implemented in base class' do
309
+ expect {
310
+ should be_immutable
311
+ }.to raise_exception
312
+ end
313
+ end