serverspec-clc 2.1.0

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 (180) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +26 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +14 -0
  5. data/Gemfile +8 -0
  6. data/Guardfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +15 -0
  9. data/Rakefile +30 -0
  10. data/WINDOWS_SUPPORT.md +116 -0
  11. data/bin/serverspec-init +7 -0
  12. data/lib/serverspec.rb +33 -0
  13. data/lib/serverspec/commands/base.rb +7 -0
  14. data/lib/serverspec/helper.rb +8 -0
  15. data/lib/serverspec/helper/type.rb +23 -0
  16. data/lib/serverspec/matcher.rb +35 -0
  17. data/lib/serverspec/matcher/be_enabled.rb +13 -0
  18. data/lib/serverspec/matcher/be_executable.rb +13 -0
  19. data/lib/serverspec/matcher/be_installed.rb +13 -0
  20. data/lib/serverspec/matcher/be_listening.rb +13 -0
  21. data/lib/serverspec/matcher/be_mounted.rb +15 -0
  22. data/lib/serverspec/matcher/be_reachable.rb +17 -0
  23. data/lib/serverspec/matcher/be_readable.rb +13 -0
  24. data/lib/serverspec/matcher/be_resolvable.rb +9 -0
  25. data/lib/serverspec/matcher/be_running.rb +13 -0
  26. data/lib/serverspec/matcher/be_writable.rb +13 -0
  27. data/lib/serverspec/matcher/belong_to_group.rb +5 -0
  28. data/lib/serverspec/matcher/belong_to_primary_group.rb +5 -0
  29. data/lib/serverspec/matcher/contain.rb +24 -0
  30. data/lib/serverspec/matcher/have_entry.rb +14 -0
  31. data/lib/serverspec/matcher/have_rule.rb +17 -0
  32. data/lib/serverspec/matcher/have_site_application.rb +18 -0
  33. data/lib/serverspec/matcher/have_site_bindings.rb +22 -0
  34. data/lib/serverspec/matcher/have_virtual_dir.rb +14 -0
  35. data/lib/serverspec/setup.rb +333 -0
  36. data/lib/serverspec/subject.rb +12 -0
  37. data/lib/serverspec/type/base.rb +21 -0
  38. data/lib/serverspec/type/cgroup.rb +17 -0
  39. data/lib/serverspec/type/command.rb +20 -0
  40. data/lib/serverspec/type/cron.rb +11 -0
  41. data/lib/serverspec/type/default_gateway.rb +15 -0
  42. data/lib/serverspec/type/file.rb +113 -0
  43. data/lib/serverspec/type/group.rb +11 -0
  44. data/lib/serverspec/type/host.rb +15 -0
  45. data/lib/serverspec/type/iis_app_pool.rb +43 -0
  46. data/lib/serverspec/type/iis_website.rb +40 -0
  47. data/lib/serverspec/type/interface.rb +18 -0
  48. data/lib/serverspec/type/ip6tables.rb +13 -0
  49. data/lib/serverspec/type/ipfilter.rb +11 -0
  50. data/lib/serverspec/type/ipnat.rb +11 -0
  51. data/lib/serverspec/type/iptables.rb +11 -0
  52. data/lib/serverspec/type/kernel_module.rb +7 -0
  53. data/lib/serverspec/type/linux_kernel_parameter.rb +10 -0
  54. data/lib/serverspec/type/lxc.rb +15 -0
  55. data/lib/serverspec/type/mail_alias.rb +7 -0
  56. data/lib/serverspec/type/package.rb +65 -0
  57. data/lib/serverspec/type/php_config.rb +10 -0
  58. data/lib/serverspec/type/port.rb +40 -0
  59. data/lib/serverspec/type/ppa.rb +11 -0
  60. data/lib/serverspec/type/process.rb +27 -0
  61. data/lib/serverspec/type/routing_table.rb +11 -0
  62. data/lib/serverspec/type/selinux.rb +19 -0
  63. data/lib/serverspec/type/selinux_module.rb +11 -0
  64. data/lib/serverspec/type/service.rb +33 -0
  65. data/lib/serverspec/type/user.rb +31 -0
  66. data/lib/serverspec/type/windows_feature.rb +7 -0
  67. data/lib/serverspec/type/windows_hot_fix.rb +7 -0
  68. data/lib/serverspec/type/windows_registry_key.rb +19 -0
  69. data/lib/serverspec/type/windows_scheduled_task.rb +7 -0
  70. data/lib/serverspec/type/yumrepo.rb +11 -0
  71. data/lib/serverspec/type/zfs.rb +15 -0
  72. data/lib/serverspec/version.rb +3 -0
  73. data/serverspec.gemspec +26 -0
  74. data/spec/helper/type_spec.rb +6 -0
  75. data/spec/spec_helper.rb +28 -0
  76. data/spec/type/aix/file_spec.rb +31 -0
  77. data/spec/type/aix/group_spec.rb +7 -0
  78. data/spec/type/aix/package_spec.rb +7 -0
  79. data/spec/type/aix/port_spec.rb +20 -0
  80. data/spec/type/aix/service_spec.rb +12 -0
  81. data/spec/type/aix/user_spec.rb +16 -0
  82. data/spec/type/arch/file_spec.rb +15 -0
  83. data/spec/type/arch/package_spec.rb +19 -0
  84. data/spec/type/arch/service_spec.rb +9 -0
  85. data/spec/type/base/command_spec.rb +62 -0
  86. data/spec/type/base/cron_spec.rb +11 -0
  87. data/spec/type/base/default_gateway_spec.rb +11 -0
  88. data/spec/type/base/file_spec.rb +336 -0
  89. data/spec/type/base/group_spec.rb +11 -0
  90. data/spec/type/base/host_spec.rb +36 -0
  91. data/spec/type/base/mail_alias_spec.rb +7 -0
  92. data/spec/type/base/package_spec.rb +43 -0
  93. data/spec/type/base/php_config_spec.rb +33 -0
  94. data/spec/type/base/port_spec.rb +34 -0
  95. data/spec/type/base/process_spec.rb +35 -0
  96. data/spec/type/base/routing_table_spec.rb +118 -0
  97. data/spec/type/base/service_spec.rb +45 -0
  98. data/spec/type/base/user_spec.rb +31 -0
  99. data/spec/type/darwin/file_spec.rb +41 -0
  100. data/spec/type/darwin/package_spec.rb +19 -0
  101. data/spec/type/darwin/port_spec.rb +27 -0
  102. data/spec/type/darwin/service_spec.rb +16 -0
  103. data/spec/type/debian/package_spec.rb +23 -0
  104. data/spec/type/debian/service_spec.rb +11 -0
  105. data/spec/type/fedora/service_spec.rb +15 -0
  106. data/spec/type/fedora15/service_spec.rb +15 -0
  107. data/spec/type/fedora20/service_spec.rb +15 -0
  108. data/spec/type/freebsd/file_spec.rb +29 -0
  109. data/spec/type/freebsd/package_spec.rb +19 -0
  110. data/spec/type/freebsd/port_spec.rb +27 -0
  111. data/spec/type/freebsd/service_spec.rb +8 -0
  112. data/spec/type/freebsd10/package_spec.rb +19 -0
  113. data/spec/type/gentoo/package_spec.rb +7 -0
  114. data/spec/type/gentoo/service_spec.rb +12 -0
  115. data/spec/type/linux/cgroup_spec.rb +13 -0
  116. data/spec/type/linux/file_spec.rb +21 -0
  117. data/spec/type/linux/interface_spec.rb +25 -0
  118. data/spec/type/linux/ip6tables_spec.rb +19 -0
  119. data/spec/type/linux/iptables_spec.rb +11 -0
  120. data/spec/type/linux/kernel_module_spec.rb +7 -0
  121. data/spec/type/linux/linux_kernel_parameter_spec.rb +33 -0
  122. data/spec/type/linux/lxc_container_spec.rb +12 -0
  123. data/spec/type/linux/selinux_module_spec.rb +11 -0
  124. data/spec/type/linux/selinux_spec.rb +15 -0
  125. data/spec/type/linux/zfs_spec.rb +15 -0
  126. data/spec/type/nixos/package_spec.rb +15 -0
  127. data/spec/type/nixos/service_spec.rb +9 -0
  128. data/spec/type/openbsd/file_spec.rb +134 -0
  129. data/spec/type/openbsd/interface_spec.rb +21 -0
  130. data/spec/type/openbsd/mail_alias_spec.rb +7 -0
  131. data/spec/type/openbsd/package_spec.rb +11 -0
  132. data/spec/type/openbsd/port_spec.rb +7 -0
  133. data/spec/type/openbsd/service_spec.rb +13 -0
  134. data/spec/type/openbsd/user_spec.rb +12 -0
  135. data/spec/type/opensuse/service_spec.rb +16 -0
  136. data/spec/type/plamo/package_spec.rb +8 -0
  137. data/spec/type/plamo/service_spec.rb +8 -0
  138. data/spec/type/redhat/file_spec.rb +19 -0
  139. data/spec/type/redhat/package_spec.rb +23 -0
  140. data/spec/type/redhat/service_spec.rb +11 -0
  141. data/spec/type/redhat/yumrepo_spec.rb +11 -0
  142. data/spec/type/redhat5/iptables_spec.rb +11 -0
  143. data/spec/type/redhat7/service_spec.rb +9 -0
  144. data/spec/type/smartos/package_spec.rb +19 -0
  145. data/spec/type/smartos/service_spec.rb +16 -0
  146. data/spec/type/solaris/cron_spec.rb +11 -0
  147. data/spec/type/solaris/file_spec.rb +15 -0
  148. data/spec/type/solaris/group_spec.rb +7 -0
  149. data/spec/type/solaris/host_spec.rb +19 -0
  150. data/spec/type/solaris/ipfilter_spec.rb +7 -0
  151. data/spec/type/solaris/ipnat_spec.rb +7 -0
  152. data/spec/type/solaris/package_spec.rb +7 -0
  153. data/spec/type/solaris/port_spec.rb +34 -0
  154. data/spec/type/solaris/service_spec.rb +16 -0
  155. data/spec/type/solaris/user_spec.rb +16 -0
  156. data/spec/type/solaris/zfs_spec.rb +15 -0
  157. data/spec/type/solaris10/file_spec.rb +313 -0
  158. data/spec/type/solaris10/group_spec.rb +8 -0
  159. data/spec/type/solaris10/host_spec.rb +16 -0
  160. data/spec/type/solaris10/package_spec.rb +8 -0
  161. data/spec/type/solaris10/user_spec.rb +8 -0
  162. data/spec/type/suse/package_spec.rb +23 -0
  163. data/spec/type/suse/service_spec.rb +11 -0
  164. data/spec/type/ubuntu/ppa_spec.rb +11 -0
  165. data/spec/type/ubuntu/service_spec.rb +7 -0
  166. data/spec/type/windows/command_spec.rb +64 -0
  167. data/spec/type/windows/feature_spec.rb +17 -0
  168. data/spec/type/windows/file_spec.rb +121 -0
  169. data/spec/type/windows/group_spec.rb +23 -0
  170. data/spec/type/windows/host_spec.rb +32 -0
  171. data/spec/type/windows/hot_fix_spec.rb +22 -0
  172. data/spec/type/windows/iis_app_pool_spec.rb +17 -0
  173. data/spec/type/windows/iis_webisite_spec.rb +16 -0
  174. data/spec/type/windows/package_spec.rb +10 -0
  175. data/spec/type/windows/port_spec.rb +25 -0
  176. data/spec/type/windows/registry_key_spec.rb +58 -0
  177. data/spec/type/windows/scheduled_task_spec.rb +9 -0
  178. data/spec/type/windows/service_spec.rb +30 -0
  179. data/spec/type/windows/user_spec.rb +33 -0
  180. metadata +400 -0
@@ -0,0 +1,65 @@
1
+ module Serverspec::Type
2
+ class Package < Base
3
+ def installed?(provider, version)
4
+ if provider.nil?
5
+ @runner.check_package_is_installed(@name, version)
6
+ else
7
+ check_method = "check_package_is_installed_by_#{provider}".to_sym
8
+ @runner.send(check_method, @name, version)
9
+ end
10
+ end
11
+
12
+ def version
13
+ ret = @runner.get_package_version(@name).stdout.strip
14
+ if ret.empty?
15
+ nil
16
+ else
17
+ Version.new(ret)
18
+ end
19
+ end
20
+
21
+ class Version
22
+ include Comparable
23
+
24
+ attr_reader :epoch, :version
25
+
26
+ def initialize(val)
27
+ matches = val.match(/^(?:(\d+):)?(\d[0-9a-zA-Z.+:~-]*)$/)
28
+ if matches.nil?
29
+ raise ArgumentError, "Malformed version number string #{val}"
30
+ end
31
+ @epoch = matches[1].to_i
32
+ @version = matches[2].to_s
33
+ end
34
+
35
+ def <=>(other)
36
+ other = Version.new(other) if other.is_a?(String)
37
+ rv = @epoch <=> other.epoch
38
+ return rv if rv != 0
39
+
40
+ self.ver_array <=> other.ver_array
41
+ end
42
+
43
+ def ver_array
44
+ val = @version
45
+ re = /^(?:(\d+)|(\D+))(.*)$/
46
+ res = []
47
+ until val.empty?
48
+ matches = val.match(re)
49
+ if matches[1].nil?
50
+ # String
51
+ matches[2].to_s.each_byte do |b|
52
+ code_point = defined?("~".ord) ? "~".ord : ?~
53
+ res << ((b == code_point) ? -2 : b)
54
+ end
55
+ else
56
+ # Digits
57
+ res << matches[1].to_i
58
+ end
59
+ val = matches[3].to_s
60
+ end
61
+ res << -1
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,10 @@
1
+ module Serverspec::Type
2
+ class PhpConfig < Base
3
+ def value
4
+ ret = @runner.run_command("php -r 'echo get_cfg_var( \"#{@name}\" );'")
5
+ val = ret.stdout
6
+ val = val.to_i if val.match(/^\d+$/)
7
+ val
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,40 @@
1
+ require 'resolv'
2
+
3
+ module Serverspec::Type
4
+ class Port < Base
5
+ def protocols
6
+ %w(udp tcp tcp6 udp6)
7
+ end
8
+
9
+ def options
10
+ @options ||= {}
11
+ end
12
+
13
+ def protocol_matcher(protocol)
14
+ protocol = protocol.to_s.downcase
15
+ if protocols.include?(protocol)
16
+ options[:protocol] = protocol
17
+ else
18
+ raise ArgumentError.new("`be_listening` matcher doesn't support #{protocol}")
19
+ end
20
+ end
21
+
22
+ def local_address_matcher(local_address)
23
+ if valid_ip_address?(local_address)
24
+ options[:local_address] = local_address
25
+ else
26
+ raise ArgumentError.new("`be_listening` matcher requires valid IPv4 or IPv6 address")
27
+ end
28
+ end
29
+
30
+ def listening?(protocol, local_address)
31
+ protocol_matcher(protocol) if protocol
32
+ local_address_matcher(local_address) if local_address
33
+ @runner.check_port_is_listening(@name, options)
34
+ end
35
+
36
+ def valid_ip_address?(ip_address)
37
+ !!(ip_address =~ Resolv::IPv4::Regex) || !!(ip_address =~ Resolv::IPv6::Regex)
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Ppa < Base
3
+ def exists?
4
+ @runner.check_ppa_exists(@name)
5
+ end
6
+
7
+ def enabled?
8
+ @runner.check_ppa_is_enabled(@name)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,27 @@
1
+ module Serverspec::Type
2
+ class Process < Base
3
+ def running?
4
+ pid = @runner.get_process(@name, :format => "pid=").stdout
5
+ not pid.empty?
6
+ end
7
+
8
+ def user
9
+ get_column("user")
10
+ end
11
+
12
+ def group
13
+ get_column("group")
14
+ end
15
+
16
+ def method_missing(meth)
17
+ get_column(meth.to_s)
18
+ end
19
+
20
+ def get_column(keyword)
21
+ ret = @runner.get_process(@name, :format => "#{keyword}=")
22
+ val = ret.stdout.strip
23
+ val = val.to_i if val.match(/^\d+$/)
24
+ val
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class RoutingTable < Base
3
+ def has_entry?(entry)
4
+ @runner.check_routing_table_has_entry(entry)
5
+ end
6
+
7
+ def to_s
8
+ 'Routing Table'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ module Serverspec::Type
2
+ class Selinux < Base
3
+ def disabled?
4
+ @runner.check_selinux_has_mode('disabled')
5
+ end
6
+
7
+ def enforcing?
8
+ @runner.check_selinux_has_mode('enforcing')
9
+ end
10
+
11
+ def permissive?
12
+ @runner.check_selinux_has_mode('permissive')
13
+ end
14
+
15
+ def to_s
16
+ 'SELinux'
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class SelinuxModule < Base
3
+ def enabled?
4
+ @runner.check_selinux_module_is_enabled(@name)
5
+ end
6
+
7
+ def installed?(name, version=nil)
8
+ @runner.check_selinux_module_is_installed(@name, version)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,33 @@
1
+ module Serverspec::Type
2
+ class Service < Base
3
+ def enabled?(level=3)
4
+ @runner.check_service_is_enabled(@name, level)
5
+ end
6
+
7
+ def installed?(name, version)
8
+ @runner.check_service_is_installed(@name)
9
+ end
10
+
11
+ def has_start_mode?(mode)
12
+ @runner.check_service_has_start_mode(@name, mode)
13
+ end
14
+
15
+ def running?(under)
16
+ if under
17
+ check_method = "check_service_is_running_under_#{under}".to_sym
18
+ @runner.send(check_method, @name)
19
+ else
20
+ @runner.check_service_is_running(@name)
21
+ end
22
+ end
23
+
24
+ def monitored_by?(monitor)
25
+ check_method = "check_service_is_monitored_by_#{monitor}".to_sym
26
+ res = @runner.send(check_method, @name)
27
+ end
28
+
29
+ def has_property?(property)
30
+ @runner.check_service_has_property(@name, property)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,31 @@
1
+ module Serverspec::Type
2
+ class User < Base
3
+ def exists?
4
+ @runner.check_user_exists(@name)
5
+ end
6
+
7
+ def belongs_to_group?(group)
8
+ @runner.check_user_belongs_to_group(@name, group)
9
+ end
10
+
11
+ def belongs_to_primary_group?(group)
12
+ @runner.check_user_belongs_to_primary_group(@name, group)
13
+ end
14
+
15
+ def has_uid?(uid)
16
+ @runner.check_user_has_uid(@name, uid)
17
+ end
18
+
19
+ def has_home_directory?(path)
20
+ @runner.check_user_has_home_directory(@name, path)
21
+ end
22
+
23
+ def has_login_shell?(shell)
24
+ @runner.check_user_has_login_shell(@name, shell)
25
+ end
26
+
27
+ def has_authorized_key?(key)
28
+ @runner.check_user_has_authorized_key(@name, key)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,7 @@
1
+ module Serverspec::Type
2
+ class WindowsFeature < Base
3
+ def installed?(provider, version)
4
+ @runner.check_feature_is_enabled(@name, provider)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Serverspec::Type
2
+ class WindowsHotFix < Base
3
+ def installed?(provider, version)
4
+ @runner.check_hot_fix_is_installed(@name, version)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ module Serverspec::Type
2
+ class WindowsRegistryKey < Base
3
+ def exists?
4
+ @runner.check_registry_key_exists(@name)
5
+ end
6
+
7
+ def has_property?(property_name, property_type = :type_string)
8
+ @runner.check_registry_key_has_property(@name, {:name => property_name, :type => property_type})
9
+ end
10
+
11
+ def has_value?(value)
12
+ @runner.check_registry_key_has_value(@name, {:name => '', :type => :type_string, :value => value})
13
+ end
14
+
15
+ def has_property_value?(property_name, property_type, value)
16
+ @runner.check_registry_key_has_value(@name, {:name => property_name, :type => property_type, :value => value})
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,7 @@
1
+ module Serverspec::Type
2
+ class WindowsScheduledTask < Base
3
+ def exists?
4
+ @runner.check_scheduled_task_exists(@name)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,11 @@
1
+ module Serverspec::Type
2
+ class Yumrepo < Base
3
+ def exists?
4
+ @runner.check_yumrepo_exists(@name)
5
+ end
6
+
7
+ def enabled?
8
+ @runner.check_yumrepo_is_enabled(@name)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module Serverspec::Type
2
+ class Zfs < Base
3
+ def exists?
4
+ @runner.check_zfs_exists(@name)
5
+ end
6
+
7
+ def has_property?(property)
8
+ @runner.check_zfs_has_property(@name, property)
9
+ end
10
+
11
+ def to_s
12
+ 'ZFS'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,3 @@
1
+ module Serverspec
2
+ VERSION = "2.1.0"
3
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'serverspec/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "serverspec-clc"
8
+ spec.version = Serverspec::VERSION
9
+ spec.authors = ["Gosuke Miyashita"]
10
+ spec.email = ["gosukenator@gmail.com"]
11
+ spec.description = %q{RSpec tests for your servers configured by Puppet, Chef or anything else}
12
+ spec.summary = %q{RSpec tests for your servers configured by Puppet, Chef or anything else}
13
+ spec.homepage = "http://serverspec.org/"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency "rspec", "~> 3.0"
22
+ spec.add_runtime_dependency "rspec-its"
23
+ spec.add_runtime_dependency "specinfra", "~> 2.1"
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rake", "~> 10.1.1"
26
+ end
@@ -0,0 +1,6 @@
1
+ require 'spec_helper'
2
+
3
+ describe String do
4
+ subject { String.new }
5
+ it { should_not respond_to :host }
6
+ end
@@ -0,0 +1,28 @@
1
+ require 'serverspec'
2
+
3
+ set :backend, :exec
4
+
5
+ module Specinfra
6
+ module Backend
7
+ class Exec < Base
8
+ def run_command cmd
9
+ CommandResult.new({
10
+ :stdout => ::Specinfra.configuration.stdout,
11
+ :stderr => ::Specinfra.configuration.stderr,
12
+ :exit_status => 0,
13
+ :exit_signal => nil,
14
+ })
15
+ end
16
+ end
17
+ class Cmd < Base
18
+ def run_command cmd
19
+ CommandResult.new({
20
+ :stdout => ::Specinfra.configuration.stdout,
21
+ :stderr => ::Specinfra.configuration.stderr,
22
+ :exit_status => 0,
23
+ :exit_signal => nil,
24
+ })
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ set :os, {:family => 'aix'}
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
16
+
17
+ describe file('/etc/passwd') do
18
+ it 'be_mode is not implemented' do
19
+ expect {
20
+ should be_mode 644
21
+ }.to raise_exception
22
+ end
23
+ end
24
+
25
+ describe file('/etc/passwd') do
26
+ it { should be_owned_by 'root' }
27
+ end
28
+
29
+ describe file('/etc/passwd') do
30
+ it { should be_grouped_into 'root' }
31
+ end