serverspec 0.4.0 → 0.4.1

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 (40) hide show
  1. data/lib/serverspec/helper/type.rb +8 -2
  2. data/lib/serverspec/matchers/be_directory.rb +5 -1
  3. data/lib/serverspec/matchers/be_executable.rb +7 -3
  4. data/lib/serverspec/matchers/be_file.rb +5 -1
  5. data/lib/serverspec/matchers/be_grouped_into.rb +5 -1
  6. data/lib/serverspec/matchers/be_installed.rb +11 -7
  7. data/lib/serverspec/matchers/be_linked_to.rb +5 -1
  8. data/lib/serverspec/matchers/be_listening.rb +6 -2
  9. data/lib/serverspec/matchers/be_mode.rb +5 -1
  10. data/lib/serverspec/matchers/be_mounted.rb +5 -1
  11. data/lib/serverspec/matchers/be_owned_by.rb +5 -1
  12. data/lib/serverspec/matchers/be_readable.rb +7 -3
  13. data/lib/serverspec/matchers/be_writable.rb +7 -3
  14. data/lib/serverspec/matchers/contain.rb +9 -5
  15. data/lib/serverspec/matchers/match_md5checksum.rb +5 -1
  16. data/lib/serverspec/type/base.rb +14 -0
  17. data/lib/serverspec/type/file.rb +70 -0
  18. data/lib/serverspec/type/package.rb +19 -0
  19. data/lib/serverspec/type/port.rb +9 -0
  20. data/lib/serverspec/type/service.rb +1 -9
  21. data/lib/serverspec/version.rb +1 -1
  22. data/spec/darwin/file_spec.rb +40 -0
  23. data/spec/darwin/package_spec.rb +8 -0
  24. data/spec/darwin/port_spec.rb +7 -0
  25. data/spec/debian/file_spec.rb +39 -0
  26. data/spec/debian/package_spec.rb +9 -0
  27. data/spec/debian/port_spec.rb +7 -0
  28. data/spec/gentoo/file_spec.rb +40 -0
  29. data/spec/gentoo/package_spec.rb +9 -0
  30. data/spec/gentoo/port_spec.rb +7 -0
  31. data/spec/redhat/file_spec.rb +40 -0
  32. data/spec/redhat/package_spec.rb +9 -0
  33. data/spec/redhat/port_spec.rb +7 -0
  34. data/spec/solaris/file_spec.rb +40 -0
  35. data/spec/solaris/package_spec.rb +9 -0
  36. data/spec/solaris/port_spec.rb +7 -0
  37. data/spec/support/shared_file_examples.rb +557 -0
  38. data/spec/support/shared_package_examples.rb +41 -0
  39. data/spec/support/shared_port_examples.rb +11 -0
  40. metadata +42 -2
@@ -1,10 +1,16 @@
1
+ require 'serverspec/type/base'
1
2
  require 'serverspec/type/service'
3
+ require 'serverspec/type/package'
4
+ require 'serverspec/type/port'
5
+ require 'serverspec/type/file'
2
6
 
3
7
  module Serverspec
4
8
  module Helper
5
9
  module Type
6
- def service name
7
- Serverspec::Type::Service.new(name)
10
+ %w( service package port file ).each do |type|
11
+ define_method type do |name|
12
+ self.class.const_get('Serverspec').const_get('Type').const_get(type.capitalize).new(name)
13
+ end
8
14
  end
9
15
  end
10
16
  end
@@ -1,5 +1,9 @@
1
1
  RSpec::Matchers.define :be_directory do
2
2
  match do |actual|
3
- backend.check_directory(example, actual)
3
+ if actual.respond_to?(:directory?)
4
+ actual.directory?
5
+ else
6
+ backend.check_directory(example, actual)
7
+ end
4
8
  end
5
9
  end
@@ -1,9 +1,13 @@
1
1
  RSpec::Matchers.define :be_executable do
2
2
  match do |file|
3
- if @by_user != nil
4
- backend.check_access_by_user(example, file, @by_user, 'x')
3
+ if file.respond_to?(:executable?)
4
+ file.executable?(@by_whom, @by_user)
5
5
  else
6
- backend.check_executable(example, file, @by_whom)
6
+ if @by_user != nil
7
+ backend.check_access_by_user(example, file, @by_user, 'x')
8
+ else
9
+ backend.check_executable(example, file, @by_whom)
10
+ end
7
11
  end
8
12
  end
9
13
  chain :by do |by_whom|
@@ -1,5 +1,9 @@
1
1
  RSpec::Matchers.define :be_file do
2
2
  match do |actual|
3
- backend.check_file(example, actual)
3
+ if actual.respond_to?(:file?)
4
+ actual.file?
5
+ else
6
+ backend.check_file(example, actual)
7
+ end
4
8
  end
5
9
  end
@@ -1,5 +1,9 @@
1
1
  RSpec::Matchers.define :be_grouped_into do |group|
2
2
  match do |file|
3
- backend.check_grouped(example, file, group)
3
+ if file.respond_to?(:grouped_into?)
4
+ file.grouped_into?(group)
5
+ else
6
+ backend.check_grouped(example, file, group)
7
+ end
4
8
  end
5
9
  end
@@ -1,15 +1,19 @@
1
1
  RSpec::Matchers.define :be_installed do
2
2
  match do |name|
3
- if @provider.nil?
4
- backend.check_installed(example, name)
3
+ if name.respond_to?(:installed?)
4
+ name.installed?(@provider, @version)
5
5
  else
6
- check_method = "check_installed_by_#{@provider}".to_sym
6
+ if @provider.nil?
7
+ backend.check_installed(example, name)
8
+ else
9
+ check_method = "check_installed_by_#{@provider}".to_sym
7
10
 
8
- unless backend.respond_to?(check_method)
9
- raise ArgumentError.new("`be_installed` matcher doesn't support #{@under}")
10
- end
11
+ unless backend.respond_to?(check_method)
12
+ raise ArgumentError.new("`be_installed` matcher doesn't support #{@under}")
13
+ end
11
14
 
12
- backend.send(check_method, example, name, @version)
15
+ backend.send(check_method, example, name, @version)
16
+ end
13
17
  end
14
18
  end
15
19
 
@@ -1,5 +1,9 @@
1
1
  RSpec::Matchers.define :be_linked_to do |target|
2
2
  match do |link|
3
- backend.check_link(example, link, target)
3
+ if link.respond_to?(:linked_to?)
4
+ link.linked_to?(target)
5
+ else
6
+ backend.check_link(example, link, target)
7
+ end
4
8
  end
5
9
  end
@@ -1,6 +1,10 @@
1
1
  RSpec::Matchers.define :be_listening do
2
2
  match do |actual|
3
- port = actual.gsub(/port\s+/, '')
4
- backend.check_listening(example, port)
3
+ if actual.respond_to?(:listening?)
4
+ actual.listening?
5
+ else
6
+ port = actual.gsub(/port\s+/, '')
7
+ backend.check_listening(example, port)
8
+ end
5
9
  end
6
10
  end
@@ -1,5 +1,9 @@
1
1
  RSpec::Matchers.define :be_mode do |mode|
2
2
  match do |file|
3
- backend.check_mode(example, file, mode)
3
+ if file.respond_to?(:mode?)
4
+ file.mode?(mode)
5
+ else
6
+ backend.check_mode(example, file, mode)
7
+ end
4
8
  end
5
9
  end
@@ -1,6 +1,10 @@
1
1
  RSpec::Matchers.define :be_mounted do
2
2
  match do |path|
3
- backend.check_mounted(example, path, @attr, @only_with)
3
+ if path.respond_to?(:mounted?)
4
+ path.mounted?(@attr, @only_with)
5
+ else
6
+ backend.check_mounted(example, path, @attr, @only_with)
7
+ end
4
8
  end
5
9
  chain :with do |attr|
6
10
  @attr = attr
@@ -1,5 +1,9 @@
1
1
  RSpec::Matchers.define :be_owned_by do |owner|
2
2
  match do |file|
3
- backend.check_owner(example, file, owner)
3
+ if file.respond_to?(:owned_by?)
4
+ file.owned_by?(owner)
5
+ else
6
+ backend.check_owner(example, file, owner)
7
+ end
4
8
  end
5
9
  end
@@ -1,9 +1,13 @@
1
1
  RSpec::Matchers.define :be_readable do
2
2
  match do |file|
3
- if @by_user != nil
4
- backend.check_access_by_user(example, file, @by_user, 'r')
3
+ if file.respond_to?(:readable?)
4
+ file.readable?(@by_whom, @by_user)
5
5
  else
6
- backend.check_readable(example, file, @by_whom)
6
+ if @by_user != nil
7
+ backend.check_access_by_user(example, file, @by_user, 'r')
8
+ else
9
+ backend.check_readable(example, file, @by_whom)
10
+ end
7
11
  end
8
12
  end
9
13
  chain :by do |by_whom|
@@ -1,9 +1,13 @@
1
1
  RSpec::Matchers.define :be_writable do
2
2
  match do |file|
3
- if @by_user != nil
4
- backend.check_access_by_user(example, file, @by_user, 'w')
3
+ if file.respond_to?(:writable?)
4
+ file.writable?(@by_whom, @by_user)
5
5
  else
6
- backend.check_writable(example, file, @by_whom)
6
+ if @by_user != nil
7
+ backend.check_access_by_user(example, file, @by_user, 'w')
8
+ else
9
+ backend.check_writable(example, file, @by_whom)
10
+ end
7
11
  end
8
12
  end
9
13
  chain :by do |by_whom|
@@ -1,12 +1,16 @@
1
1
  RSpec::Matchers.define :contain do |pattern|
2
2
  match do |file|
3
- if (@from || @to).nil?
4
- cmd = backend.commands.check_file_contain(file, pattern)
3
+ if file.respond_to?(:contain)
4
+ file.contain(pattern, @from, @to)
5
5
  else
6
- cmd = backend.commands.check_file_contain_within(file, pattern, @from, @to)
6
+ if (@from || @to).nil?
7
+ cmd = backend.commands.check_file_contain(file, pattern)
8
+ else
9
+ cmd = backend.commands.check_file_contain_within(file, pattern, @from, @to)
10
+ end
11
+ ret = backend.run_command(cmd)
12
+ ret[:exit_status] == 0
7
13
  end
8
- ret = backend.run_command(cmd)
9
- ret[:exit_status] == 0
10
14
  end
11
15
  # for contain(pattern).from(/A/).to(/B/)
12
16
  chain :from do |from|
@@ -1,5 +1,9 @@
1
1
  RSpec::Matchers.define :match_md5checksum do |pattern|
2
2
  match do |file|
3
- backend.check_file_md5checksum(example, file, pattern)
3
+ if file.respond_to?(:match_md5checksum)
4
+ file.match_md5checksum(pattern)
5
+ else
6
+ backend.check_file_md5checksum(example, file, pattern)
7
+ end
4
8
  end
5
9
  end
@@ -0,0 +1,14 @@
1
+ module Serverspec
2
+ module Type
3
+ class Base
4
+ def initialize name
5
+ @name = name
6
+ end
7
+
8
+ def to_s
9
+ type = self.class.name.split(':')[-1]
10
+ %Q!#{type} "#{@name}"!
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,70 @@
1
+ module Serverspec
2
+ module Type
3
+ class File < Base
4
+ def file?
5
+ backend.check_file(nil, @name)
6
+ end
7
+
8
+ def directory?
9
+ backend.check_directory(nil, @name)
10
+ end
11
+
12
+ def contain(pattern, from, to)
13
+ if (@from || @to).nil?
14
+ cmd = backend.check_file_contain(nil, @name, pattern)
15
+ else
16
+ cmd = backend.check_file_contain_within(nil, @name, pattern, from, to)
17
+ end
18
+ end
19
+
20
+ def mode?(mode)
21
+ backend.check_mode(nil, @name, mode)
22
+ end
23
+
24
+ def owned_by?(owner)
25
+ backend.check_owner(nil, @name, owner)
26
+ end
27
+
28
+ def grouped_into?(group)
29
+ backend.check_grouped(nil, @name, group)
30
+ end
31
+
32
+ def linked_to?(target)
33
+ backend.check_link(nil, @name, target)
34
+ end
35
+
36
+ def readable?(by_whom, by_user)
37
+ if by_user != nil
38
+ backend.check_access_by_user(nil, @name, by_user, 'r')
39
+ else
40
+ backend.check_readable(nil, @name, by_whom)
41
+ end
42
+ end
43
+
44
+ def writable?(by_whom, by_user)
45
+ if by_user != nil
46
+ backend.check_access_by_user(nil, @name, by_user, 'w')
47
+ else
48
+ backend.check_writable(nil, @name, by_whom)
49
+ end
50
+ end
51
+
52
+ def executable?(by_whom, by_user)
53
+ if by_user != nil
54
+ backend.check_access_by_user(nil, @name, by_user, 'x')
55
+ else
56
+ backend.check_executable(nil, @name, by_whom)
57
+ end
58
+ end
59
+
60
+ def mounted?(attr, only_with)
61
+ backend.check_mounted(nil, @name, attr, only_with)
62
+ end
63
+
64
+ def match_md5checksum(md5sum)
65
+ backend.check_file_md5checksum(nil, @name, md5sum)
66
+ end
67
+
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,19 @@
1
+ module Serverspec
2
+ module Type
3
+ class Package < Base
4
+ def installed?(provider, version)
5
+ if provider.nil?
6
+ backend.check_installed(nil, @name)
7
+ else
8
+ check_method = "check_installed_by_#{provider}".to_sym
9
+
10
+ unless backend.respond_to?(check_method)
11
+ raise ArgumentError.new("`be_installed` matcher doesn't support #{provider}")
12
+ end
13
+
14
+ backend.send(check_method, nil, @name, version)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ module Serverspec
2
+ module Type
3
+ class Port < Base
4
+ def listening?
5
+ backend.check_listening(nil, @name)
6
+ end
7
+ end
8
+ end
9
+ end
@@ -1,10 +1,6 @@
1
1
  module Serverspec
2
2
  module Type
3
- class Service
4
- def initialize name
5
- @name = name
6
- end
7
-
3
+ class Service < Base
8
4
  def enabled?
9
5
  backend.check_enabled(nil, @name)
10
6
  end
@@ -22,10 +18,6 @@ module Serverspec
22
18
  backend.check_running(nil, @name)
23
19
  end
24
20
  end
25
-
26
- def to_s
27
- "Service #{@name}"
28
- end
29
21
  end
30
22
  end
31
23
  end
@@ -1,3 +1,3 @@
1
1
  module Serverspec
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Darwin
4
+
5
+ describe 'Serverspec service matchers of Darwin family' do
6
+ it_behaves_like 'support file be_file matcher', '/etc/ssh/sshd_config'
7
+ it_behaves_like 'support file be_directory matcher', '/etc/ssh'
8
+ it_behaves_like 'support file contain matcher', '/etc/ssh/sshd_config', 'This is the sshd server system-wide configuration file'
9
+ it_behaves_like 'support file contain from to matcher', 'Gemfile', 'rspec', /^group :test do/, /^end/
10
+ it_behaves_like 'support file contain after matcher', 'Gemfile', 'rspec', /^group :test do/
11
+ it_behaves_like 'support file contain before matcher', 'Gemfile', 'rspec', /^end/
12
+ it_behaves_like 'support file be_mode matcher', '/etc/passwd', 644
13
+ it_behaves_like 'support file be_owned_by matcher', '/etc/passwd', 'root'
14
+ it_behaves_like 'support file be_grouped_into matcher', '/etc/passwd', 'root'
15
+ it_behaves_like 'support file be_linked_to matcher', '/etc/pam.d/system-auth', '/etc/pam.d/system-auth-ac'
16
+
17
+ it_behaves_like 'support file be_readable matcher', '/dev'
18
+ it_behaves_like 'support file be_readable by owner matcher', '/dev'
19
+ it_behaves_like 'support file be_readable by group matcher', '/dev'
20
+ it_behaves_like 'support file be_readable by others matcher', '/dev'
21
+ it_behaves_like 'support file be_readable by specific user matcher', '/tmp', 'mail'
22
+
23
+ it_behaves_like 'support file be_writable matcher', '/dev'
24
+ it_behaves_like 'support file be_writable by owner matcher', '/dev'
25
+ it_behaves_like 'support file be_writable by group matcher', '/dev'
26
+ it_behaves_like 'support file be_writable by others matcher', '/dev'
27
+ it_behaves_like 'support file be_writable by specific user matcher', '/tmp', 'mail'
28
+
29
+ it_behaves_like 'support file be_executable matcher', '/dev'
30
+ it_behaves_like 'support file be_executable by owner matcher', '/dev'
31
+ it_behaves_like 'support file be_executable by group matcher', '/dev'
32
+ it_behaves_like 'support file be_executable by others matcher', '/dev'
33
+ it_behaves_like 'support file be_executable by specific user matcher', '/tmp', 'mail'
34
+
35
+ it_behaves_like 'support file be_mounted matcher', '/'
36
+ it_behaves_like 'support file be_mounted with matcher', '/'
37
+ it_behaves_like 'support file be_mounted only with matcher', '/'
38
+
39
+ it_behaves_like 'support file match_md5checksum matcher', '/etc/services', '35435ea447c19f0ea5ef971837ab9ced'
40
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Darwin
4
+
5
+ describe 'Serverspec package matchers of Darwin family' do
6
+ it_behaves_like 'support package installed by gem matcher', 'jekyll'
7
+ it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1'
8
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Darwin
4
+
5
+ describe 'Serverspec package matchers of Darwin family' do
6
+ it_behaves_like 'support port listening matcher', 80
7
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Debian
4
+
5
+ describe 'Serverspec service matchers of Debian family' do
6
+ it_behaves_like 'support file be_file matcher', '/etc/ssh/sshd_config'
7
+ it_behaves_like 'support file be_directory matcher', '/etc/ssh'
8
+ it_behaves_like 'support file contain matcher', '/etc/ssh/sshd_config', 'This is the sshd server system-wide configuration file'
9
+ it_behaves_like 'support file contain from to matcher', 'Gemfile', 'rspec', /^group :test do/, /^end/
10
+ it_behaves_like 'support file contain after matcher', 'Gemfile', 'rspec', /^group :test do/
11
+ it_behaves_like 'support file contain before matcher', 'Gemfile', 'rspec', /^end/
12
+ it_behaves_like 'support file be_mode matcher', '/etc/passwd', 644
13
+ it_behaves_like 'support file be_owned_by matcher', '/etc/passwd', 'root'
14
+ it_behaves_like 'support file be_grouped_into matcher', '/etc/passwd', 'root'
15
+ it_behaves_like 'support file be_linked_to matcher', '/etc/pam.d/system-auth', '/etc/pam.d/system-auth-ac'
16
+
17
+ it_behaves_like 'support file be_readable matcher', '/dev'
18
+ it_behaves_like 'support file be_readable by owner matcher', '/dev'
19
+ it_behaves_like 'support file be_readable by group matcher', '/dev'
20
+ it_behaves_like 'support file be_readable by others matcher', '/dev'
21
+ it_behaves_like 'support file be_readable by specific user matcher', '/tmp', 'mail'
22
+
23
+ it_behaves_like 'support file be_writable matcher', '/dev'
24
+ it_behaves_like 'support file be_writable by owner matcher', '/dev'
25
+ it_behaves_like 'support file be_writable by group matcher', '/dev'
26
+ it_behaves_like 'support file be_writable by others matcher', '/dev'
27
+ it_behaves_like 'support file be_writable by specific user matcher', '/tmp', 'mail'
28
+
29
+ it_behaves_like 'support file be_executable matcher', '/dev'
30
+ it_behaves_like 'support file be_executable by owner matcher', '/dev'
31
+ it_behaves_like 'support file be_executable by group matcher', '/dev'
32
+ it_behaves_like 'support file be_executable by others matcher', '/dev'
33
+ it_behaves_like 'support file be_executable by specific user matcher', '/tmp', 'mail'
34
+
35
+ it_behaves_like 'support file be_mounted matcher', '/'
36
+ it_behaves_like 'support file be_mounted with matcher', '/'
37
+ it_behaves_like 'support file be_mounted only with matcher', '/'
38
+
39
+ it_behaves_like 'support file match_md5checksum matcher', '/etc/services', '35435ea447c19f0ea5ef971837ab9ced'end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Debian
4
+
5
+ describe 'Serverspec package matchers of Debian family' do
6
+ it_behaves_like 'support package installed matcher', 'httpd'
7
+ it_behaves_like 'support package installed by gem matcher', 'jekyll'
8
+ it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1'
9
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Debian
4
+
5
+ describe 'Serverspec package matchers of Debian family' do
6
+ it_behaves_like 'support port listening matcher', 80
7
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Gentoo
4
+
5
+ describe 'Serverspec service matchers of Gentoo family' do
6
+ it_behaves_like 'support file be_file matcher', '/etc/ssh/sshd_config'
7
+ it_behaves_like 'support file be_directory matcher', '/etc/ssh'
8
+ it_behaves_like 'support file contain matcher', '/etc/ssh/sshd_config', 'This is the sshd server system-wide configuration file'
9
+ it_behaves_like 'support file contain from to matcher', 'Gemfile', 'rspec', /^group :test do/, /^end/
10
+ it_behaves_like 'support file contain after matcher', 'Gemfile', 'rspec', /^group :test do/
11
+ it_behaves_like 'support file contain before matcher', 'Gemfile', 'rspec', /^end/
12
+ it_behaves_like 'support file be_mode matcher', '/etc/passwd', 644
13
+ it_behaves_like 'support file be_owned_by matcher', '/etc/passwd', 'root'
14
+ it_behaves_like 'support file be_grouped_into matcher', '/etc/passwd', 'root'
15
+ it_behaves_like 'support file be_linked_to matcher', '/etc/pam.d/system-auth', '/etc/pam.d/system-auth-ac'
16
+
17
+ it_behaves_like 'support file be_readable matcher', '/dev'
18
+ it_behaves_like 'support file be_readable by owner matcher', '/dev'
19
+ it_behaves_like 'support file be_readable by group matcher', '/dev'
20
+ it_behaves_like 'support file be_readable by others matcher', '/dev'
21
+ it_behaves_like 'support file be_readable by specific user matcher', '/tmp', 'mail'
22
+
23
+ it_behaves_like 'support file be_writable matcher', '/dev'
24
+ it_behaves_like 'support file be_writable by owner matcher', '/dev'
25
+ it_behaves_like 'support file be_writable by group matcher', '/dev'
26
+ it_behaves_like 'support file be_writable by others matcher', '/dev'
27
+ it_behaves_like 'support file be_writable by specific user matcher', '/tmp', 'mail'
28
+
29
+ it_behaves_like 'support file be_executable matcher', '/dev'
30
+ it_behaves_like 'support file be_executable by owner matcher', '/dev'
31
+ it_behaves_like 'support file be_executable by group matcher', '/dev'
32
+ it_behaves_like 'support file be_executable by others matcher', '/dev'
33
+ it_behaves_like 'support file be_executable by specific user matcher', '/tmp', 'mail'
34
+
35
+ it_behaves_like 'support file be_mounted matcher', '/'
36
+ it_behaves_like 'support file be_mounted with matcher', '/'
37
+ it_behaves_like 'support file be_mounted only with matcher', '/'
38
+
39
+ it_behaves_like 'support file match_md5checksum matcher', '/etc/services', '35435ea447c19f0ea5ef971837ab9ced'
40
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Gentoo
4
+
5
+ describe 'Serverspec package matchers of Gentoo family' do
6
+ it_behaves_like 'support package installed matcher', 'httpd'
7
+ it_behaves_like 'support package installed by gem matcher', 'jekyll'
8
+ it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1'
9
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::Gentoo
4
+
5
+ describe 'Serverspec package matchers of Gentoo family' do
6
+ it_behaves_like 'support port listening matcher', 80
7
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::RedHat
4
+
5
+ describe 'Serverspec service matchers of Red Hat family' do
6
+ it_behaves_like 'support file be_file matcher', '/etc/ssh/sshd_config'
7
+ it_behaves_like 'support file be_directory matcher', '/etc/ssh'
8
+ it_behaves_like 'support file contain matcher', '/etc/ssh/sshd_config', 'This is the sshd server system-wide configuration file'
9
+ it_behaves_like 'support file contain from to matcher', 'Gemfile', 'rspec', /^group :test do/, /^end/
10
+ it_behaves_like 'support file contain after matcher', 'Gemfile', 'rspec', /^group :test do/
11
+ it_behaves_like 'support file contain before matcher', 'Gemfile', 'rspec', /^end/
12
+ it_behaves_like 'support file be_mode matcher', '/etc/passwd', 644
13
+ it_behaves_like 'support file be_owned_by matcher', '/etc/passwd', 'root'
14
+ it_behaves_like 'support file be_grouped_into matcher', '/etc/passwd', 'root'
15
+ it_behaves_like 'support file be_linked_to matcher', '/etc/pam.d/system-auth', '/etc/pam.d/system-auth-ac'
16
+
17
+ it_behaves_like 'support file be_readable matcher', '/dev'
18
+ it_behaves_like 'support file be_readable by owner matcher', '/dev'
19
+ it_behaves_like 'support file be_readable by group matcher', '/dev'
20
+ it_behaves_like 'support file be_readable by others matcher', '/dev'
21
+ it_behaves_like 'support file be_readable by specific user matcher', '/tmp', 'mail'
22
+
23
+ it_behaves_like 'support file be_writable matcher', '/dev'
24
+ it_behaves_like 'support file be_writable by owner matcher', '/dev'
25
+ it_behaves_like 'support file be_writable by group matcher', '/dev'
26
+ it_behaves_like 'support file be_writable by others matcher', '/dev'
27
+ it_behaves_like 'support file be_writable by specific user matcher', '/tmp', 'mail'
28
+
29
+ it_behaves_like 'support file be_executable matcher', '/dev'
30
+ it_behaves_like 'support file be_executable by owner matcher', '/dev'
31
+ it_behaves_like 'support file be_executable by group matcher', '/dev'
32
+ it_behaves_like 'support file be_executable by others matcher', '/dev'
33
+ it_behaves_like 'support file be_executable by specific user matcher', '/tmp', 'mail'
34
+
35
+ it_behaves_like 'support file be_mounted matcher', '/'
36
+ it_behaves_like 'support file be_mounted with matcher', '/'
37
+ it_behaves_like 'support file be_mounted only with matcher', '/'
38
+
39
+ it_behaves_like 'support file match_md5checksum matcher', '/etc/services', '35435ea447c19f0ea5ef971837ab9ced'
40
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::RedHat
4
+
5
+ describe 'Serverspec package matchers of Red Hat family' do
6
+ it_behaves_like 'support package installed matcher', 'httpd'
7
+ it_behaves_like 'support package installed by gem matcher', 'jekyll'
8
+ it_behaves_like 'support package installed by gem with version matcher', 'jekyll', '1.1.1'
9
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ include Serverspec::Helper::RedHat
4
+
5
+ describe 'Serverspec package matchers of Red Hat family' do
6
+ it_behaves_like 'support port listening matcher', 80
7
+ end