serverspec 0.8.1 → 0.9.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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/Rakefile +6 -8
- data/WindowsSupport.md +88 -0
- data/bin/serverspec-init +75 -0
- data/lib/serverspec/backend/base.rb +31 -0
- data/lib/serverspec/backend/cmd.rb +35 -0
- data/lib/serverspec/backend/exec.rb +1 -24
- data/lib/serverspec/backend/powershell/command.rb +36 -0
- data/lib/serverspec/backend/powershell/script_helper.rb +69 -0
- data/lib/serverspec/backend/powershell/support/check_file_access_rules.ps1 +12 -0
- data/lib/serverspec/backend/powershell/support/crop_text.ps1 +11 -0
- data/lib/serverspec/backend/powershell/support/find_group.ps1 +8 -0
- data/lib/serverspec/backend/powershell/support/find_installed_application.ps1 +7 -0
- data/lib/serverspec/backend/powershell/support/find_service.ps1 +5 -0
- data/lib/serverspec/backend/powershell/support/find_user.ps1 +8 -0
- data/lib/serverspec/backend/powershell/support/find_usergroup.ps1 +9 -0
- data/lib/serverspec/backend/powershell/support/is_port_listening.ps1 +13 -0
- data/lib/serverspec/backend/winrm.rb +26 -0
- data/lib/serverspec/backend.rb +5 -0
- data/lib/serverspec/commands/windows.rb +211 -0
- data/lib/serverspec/helper/cmd.rb +15 -0
- data/lib/serverspec/helper/type.rb +1 -1
- data/lib/serverspec/helper/windows.rb +9 -0
- data/lib/serverspec/helper/winrm.rb +15 -0
- data/lib/serverspec/helper.rb +3 -0
- data/lib/serverspec/setup.rb +59 -83
- data/lib/serverspec/type/windows_registry_key.rb +21 -0
- data/lib/serverspec/version.rb +1 -1
- data/lib/serverspec.rb +3 -0
- data/spec/backend/cmd/configuration_spec.rb +9 -0
- data/spec/backend/powershell/script_helper_spec.rb +77 -0
- data/spec/backend/winrm/configuration_spec.rb +9 -0
- data/spec/spec_helper.rb +18 -26
- data/spec/support/powershell_command_runner.rb +52 -0
- data/spec/windows/file_spec.rb +161 -0
- data/spec/windows/group_spec.rb +29 -0
- data/spec/windows/port_spec.rb +31 -0
- data/spec/windows/user_spec.rb +44 -0
- metadata +37 -2
@@ -0,0 +1,52 @@
|
|
1
|
+
shared_examples "a powershell command runner" do
|
2
|
+
describe 'configurations are not set' do
|
3
|
+
context file('/some/file') do
|
4
|
+
it { should be_file }
|
5
|
+
its(:command) { should == "((Get-Item -Path '/some/file' -Force).attributes.ToString() -Split ', ') -contains 'Archive'" }
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
describe 'path is set' do
|
10
|
+
let(:path) { 'c:/path/bin' }
|
11
|
+
context file('/some/file') do
|
12
|
+
it { should be_file }
|
13
|
+
its(:command) {
|
14
|
+
should == <<-eof
|
15
|
+
$env:path = "c:/path/bin;$env:path"
|
16
|
+
((Get-Item -Path '/some/file' -Force).attributes.ToString() -Split ', ') -contains 'Archive'
|
17
|
+
eof
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'pre_command is set' do
|
23
|
+
let(:pre_command) { 'some_other_command' }
|
24
|
+
context file('/some/file') do
|
25
|
+
it { should be_file }
|
26
|
+
its(:command) { should == <<-eof
|
27
|
+
if (some_other_command)
|
28
|
+
{
|
29
|
+
((Get-Item -Path '/some/file' -Force).attributes.ToString() -Split ', ') -contains 'Archive'
|
30
|
+
}
|
31
|
+
eof
|
32
|
+
}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'path and pre_command are set' do
|
37
|
+
let(:path) { 'c:/path/bin' }
|
38
|
+
let(:pre_command) { 'some_other_command' }
|
39
|
+
context file('/some/file') do
|
40
|
+
it { should be_file }
|
41
|
+
its(:command) { should == <<-eof
|
42
|
+
$env:path = "c:/path/bin;$env:path"
|
43
|
+
if (some_other_command)
|
44
|
+
{
|
45
|
+
$env:path = "c:/path/bin;$env:path"
|
46
|
+
((Get-Item -Path '/some/file' -Force).attributes.ToString() -Split ', ') -contains 'Archive'
|
47
|
+
}
|
48
|
+
eof
|
49
|
+
}
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Cmd
|
4
|
+
include Serverspec::Helper::Windows
|
5
|
+
|
6
|
+
describe file('/some/valid/file') do
|
7
|
+
it { should be_file }
|
8
|
+
its(:command) { should == "((Get-Item -Path '/some/valid/file' -Force).attributes.ToString() -Split ', ') -contains 'Archive'" }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe file('/some/invalid/file') do
|
12
|
+
it { should_not be_file }
|
13
|
+
end
|
14
|
+
|
15
|
+
describe file('/some/valid/folder') do
|
16
|
+
it { should be_directory }
|
17
|
+
its(:command) { should == "((Get-Item -Path '/some/valid/folder' -Force).attributes.ToString() -Split ', ') -contains 'Directory'" }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe file('/some/invalid/folder') do
|
21
|
+
it { should_not be_directory }
|
22
|
+
end
|
23
|
+
|
24
|
+
describe file('/some/file') do
|
25
|
+
it { should contain 'search text' }
|
26
|
+
its(:command) { should == "[Io.File]::ReadAllText('/some/file') -match 'search text'" }
|
27
|
+
end
|
28
|
+
|
29
|
+
describe file('/some/file') do
|
30
|
+
it { should contain /^search text/ }
|
31
|
+
its(:command) { should == "[Io.File]::ReadAllText('/some/file') -match '^search text'" }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe file('/some/file') do
|
35
|
+
it { should_not contain 'This is invalid text!!' }
|
36
|
+
end
|
37
|
+
|
38
|
+
describe file('Gemfile') do
|
39
|
+
it { should contain('rspec').from(/^group :test do/).to(/^end/) }
|
40
|
+
its(:command) { should == "(CropText -text ([Io.File]::ReadAllText('Gemfile')) -fromPattern '^group :test do' -toPattern '^end') -match 'rspec'" }
|
41
|
+
end
|
42
|
+
|
43
|
+
describe file('/some/file') do
|
44
|
+
it { should_not contain('This is invalid text!!').from(/^group :test do/).to(/^end/) }
|
45
|
+
end
|
46
|
+
|
47
|
+
describe file('Gemfile') do
|
48
|
+
it { should contain('rspec').after(/^group :test do/) }
|
49
|
+
its(:command) { should == "(CropText -text ([Io.File]::ReadAllText('Gemfile')) -fromPattern '^group :test do' -toPattern '$') -match 'rspec'" }
|
50
|
+
end
|
51
|
+
|
52
|
+
describe file('Gemfile') do
|
53
|
+
it { should_not contain('This is invalid text!!').after(/^group :test do/) }
|
54
|
+
end
|
55
|
+
|
56
|
+
describe file('Gemfile') do
|
57
|
+
it { should contain('rspec').before(/end/) }
|
58
|
+
its(:command) { should == "(CropText -text ([Io.File]::ReadAllText('Gemfile')) -fromPattern '^' -toPattern 'end') -match 'rspec'" }
|
59
|
+
end
|
60
|
+
|
61
|
+
describe file('Gemfile') do
|
62
|
+
it { should_not contain('This is invalid text!!').before(/^end/) }
|
63
|
+
end
|
64
|
+
|
65
|
+
describe file('/some/file') do
|
66
|
+
it { should be_readable }
|
67
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'Everyone' -rules @('FullControl', 'Modify', 'ReadAndExecute', 'Read', 'ListDirectory')" }
|
68
|
+
end
|
69
|
+
|
70
|
+
describe file('/some/invalid/file') do
|
71
|
+
it { should_not be_readable }
|
72
|
+
end
|
73
|
+
|
74
|
+
describe file('/some/file') do
|
75
|
+
it "should raise error if trying to check access by 'owner' or 'group' or 'others'" do
|
76
|
+
['owner', 'group', 'others'].each do |access|
|
77
|
+
expect { should be_readable.by(access) }.to raise_error
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
describe file('/some/file') do
|
83
|
+
it { should be_readable.by('test.identity') }
|
84
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'test.identity' -rules @('FullControl', 'Modify', 'ReadAndExecute', 'Read', 'ListDirectory')" }
|
85
|
+
end
|
86
|
+
|
87
|
+
describe file('/some/file') do
|
88
|
+
it { should be_readable.by_user('test.identity') }
|
89
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'test.identity' -rules @('FullControl', 'Modify', 'ReadAndExecute', 'Read', 'ListDirectory')" }
|
90
|
+
end
|
91
|
+
|
92
|
+
describe file('/some/file') do
|
93
|
+
it { should be_writable }
|
94
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'Everyone' -rules @('FullControl', 'Modify', 'Write')" }
|
95
|
+
end
|
96
|
+
|
97
|
+
describe file('/some/invalid/file') do
|
98
|
+
it { should_not be_writable }
|
99
|
+
end
|
100
|
+
|
101
|
+
describe file('/some/file') do
|
102
|
+
it "should raise error if trying to check access by 'owner' or 'group' or 'others'" do
|
103
|
+
['owner', 'group', 'others'].each do |access|
|
104
|
+
expect { should be_writable.by(access) }.to raise_error
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
describe file('/some/file') do
|
110
|
+
it { should be_writable.by('test.identity') }
|
111
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'test.identity' -rules @('FullControl', 'Modify', 'Write')" }
|
112
|
+
end
|
113
|
+
|
114
|
+
describe file('/some/file') do
|
115
|
+
it { should be_writable.by_user('test.identity') }
|
116
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'test.identity' -rules @('FullControl', 'Modify', 'Write')" }
|
117
|
+
end
|
118
|
+
|
119
|
+
describe file('/some/file') do
|
120
|
+
it { should be_executable }
|
121
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'Everyone' -rules @('FullControl', 'Modify', 'ReadAndExecute', 'ExecuteFile')" }
|
122
|
+
end
|
123
|
+
|
124
|
+
describe file('/some/invalid/file') do
|
125
|
+
it { should_not be_executable }
|
126
|
+
end
|
127
|
+
|
128
|
+
describe file('/some/file') do
|
129
|
+
it "should raise error if trying to check access by 'owner' or 'group' or 'others'" do
|
130
|
+
['owner', 'group', 'others'].each do |access|
|
131
|
+
expect { should be_executable.by(access) }.to raise_error
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
describe file('/some/file') do
|
137
|
+
it { should be_executable.by('test.identity') }
|
138
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'test.identity' -rules @('FullControl', 'Modify', 'ReadAndExecute', 'ExecuteFile')" }
|
139
|
+
end
|
140
|
+
|
141
|
+
describe file('/some/file') do
|
142
|
+
it { should be_executable.by_user('test.identity') }
|
143
|
+
its(:command) { should eq "CheckFileAccessRules -path '/some/file' -identity 'test.identity' -rules @('FullControl', 'Modify', 'ReadAndExecute', 'ExecuteFile')" }
|
144
|
+
end
|
145
|
+
|
146
|
+
describe file('/some/test/file') do
|
147
|
+
it "should raise error if command is not supported" do
|
148
|
+
{
|
149
|
+
:be_socket => [],
|
150
|
+
:be_mode => 644,
|
151
|
+
:be_owned_by => 'root',
|
152
|
+
:be_grouped_into => 'root',
|
153
|
+
:be_linked_to => '/some/other/file',
|
154
|
+
:be_mounted => [],
|
155
|
+
:match_md5checksum => '35435ea447c19f0ea5ef971837ab9ced',
|
156
|
+
:match_sha256checksum => '0c3feee1353a8459f8c7d84885e6bc602ef853751ffdbce3e3b6dfa1d345fc7a'
|
157
|
+
}.each do |method, args|
|
158
|
+
expect { should self.send(method, *args) }.to raise_error Serverspec::Commands::Windows::NotSupportedError
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Cmd
|
4
|
+
include Serverspec::Helper::Windows
|
5
|
+
|
6
|
+
describe group('test.group') do
|
7
|
+
it { should exist }
|
8
|
+
its(:command) { should eq "(FindGroup -groupName 'test.group') -ne $null" }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe group('test.domain\test.group') do
|
12
|
+
it { should exist }
|
13
|
+
its(:command) { should eq "(FindGroup -groupName 'test.group' -domain 'test.domain') -ne $null" }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe group('invalid-group') do
|
17
|
+
it { should_not exist }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe group('test.group') do
|
21
|
+
it "should raise error if command is not supported" do
|
22
|
+
{
|
23
|
+
:have_gid => [nil],
|
24
|
+
}.each do |method, args|
|
25
|
+
expect { should self.send(method, *args) }.to raise_error Serverspec::Commands::Windows::NotSupportedError
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Cmd
|
4
|
+
include Serverspec::Helper::Windows
|
5
|
+
|
6
|
+
describe port(80) do
|
7
|
+
it { should be_listening }
|
8
|
+
its(:command) { should eq 'IsPortListening -portNumber 80' }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe port('invalid') do
|
12
|
+
it { should_not be_listening }
|
13
|
+
end
|
14
|
+
|
15
|
+
describe port(80) do
|
16
|
+
it { should be_listening.with("tcp") }
|
17
|
+
its(:command) { should eq "IsPortListening -portNumber 80 -protocol 'tcp'" }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe port(123) do
|
21
|
+
it { should be_listening.with("udp") }
|
22
|
+
its(:command) { should eq "IsPortListening -portNumber 123 -protocol 'udp'" }
|
23
|
+
end
|
24
|
+
|
25
|
+
describe port(80) do
|
26
|
+
it {
|
27
|
+
expect {
|
28
|
+
should be_listening.with('not implemented')
|
29
|
+
}.to raise_error(ArgumentError, %r/\A`be_listening` matcher doesn\'t support/)
|
30
|
+
}
|
31
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Cmd
|
4
|
+
include Serverspec::Helper::Windows
|
5
|
+
|
6
|
+
describe user('test.user') do
|
7
|
+
it { should exist }
|
8
|
+
its(:command) { should eq "(FindUser -userName 'test.user') -ne $null" }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe user('test.domain\test.user') do
|
12
|
+
it { should exist }
|
13
|
+
its(:command) { should eq "(FindUser -userName 'test.user' -domain 'test.domain') -ne $null" }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe user('invalid-user') do
|
17
|
+
it { should_not exist }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe user('test.user') do
|
21
|
+
it { should belong_to_group 'test.group' }
|
22
|
+
its(:command) { should eq "(FindUserGroup -userName 'test.user' -groupName 'test.group') -ne $null" }
|
23
|
+
end
|
24
|
+
|
25
|
+
describe user('test.user.domain\test.user') do
|
26
|
+
it { should belong_to_group 'test.group.domain\test.group' }
|
27
|
+
its(:command) { should eq "(FindUserGroup -userName 'test.user' -userDomain 'test.user.domain' -groupName 'test.group' -groupDomain 'test.group.domain') -ne $null" }
|
28
|
+
end
|
29
|
+
|
30
|
+
describe user('test.user') do
|
31
|
+
it { should_not belong_to_group 'invalid-group' }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe user('test.user') do
|
35
|
+
it "should raise error if command is not supported" do
|
36
|
+
{
|
37
|
+
:have_uid => [nil],
|
38
|
+
:have_login_shell => [nil],
|
39
|
+
:have_authorized_key => [nil],
|
40
|
+
}.each do |method, args|
|
41
|
+
expect { should self.send(method, *args) }.to raise_error Serverspec::Commands::Windows::NotSupportedError
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serverspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gosuke Miyashita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
11
|
+
date: 2013-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|
@@ -123,12 +123,26 @@ files:
|
|
123
123
|
- LICENSE.txt
|
124
124
|
- README.md
|
125
125
|
- Rakefile
|
126
|
+
- WindowsSupport.md
|
126
127
|
- bin/serverspec-init
|
127
128
|
- lib/serverspec.rb
|
128
129
|
- lib/serverspec/attributes.rb
|
129
130
|
- lib/serverspec/backend.rb
|
131
|
+
- lib/serverspec/backend/base.rb
|
132
|
+
- lib/serverspec/backend/cmd.rb
|
130
133
|
- lib/serverspec/backend/exec.rb
|
134
|
+
- lib/serverspec/backend/powershell/command.rb
|
135
|
+
- lib/serverspec/backend/powershell/script_helper.rb
|
136
|
+
- lib/serverspec/backend/powershell/support/check_file_access_rules.ps1
|
137
|
+
- lib/serverspec/backend/powershell/support/crop_text.ps1
|
138
|
+
- lib/serverspec/backend/powershell/support/find_group.ps1
|
139
|
+
- lib/serverspec/backend/powershell/support/find_installed_application.ps1
|
140
|
+
- lib/serverspec/backend/powershell/support/find_service.ps1
|
141
|
+
- lib/serverspec/backend/powershell/support/find_user.ps1
|
142
|
+
- lib/serverspec/backend/powershell/support/find_usergroup.ps1
|
143
|
+
- lib/serverspec/backend/powershell/support/is_port_listening.ps1
|
131
144
|
- lib/serverspec/backend/ssh.rb
|
145
|
+
- lib/serverspec/backend/winrm.rb
|
132
146
|
- lib/serverspec/commands/base.rb
|
133
147
|
- lib/serverspec/commands/darwin.rb
|
134
148
|
- lib/serverspec/commands/debian.rb
|
@@ -139,10 +153,12 @@ files:
|
|
139
153
|
- lib/serverspec/commands/solaris.rb
|
140
154
|
- lib/serverspec/commands/solaris10.rb
|
141
155
|
- lib/serverspec/commands/solaris11.rb
|
156
|
+
- lib/serverspec/commands/windows.rb
|
142
157
|
- lib/serverspec/configuration.rb
|
143
158
|
- lib/serverspec/helper.rb
|
144
159
|
- lib/serverspec/helper/attributes.rb
|
145
160
|
- lib/serverspec/helper/base.rb
|
161
|
+
- lib/serverspec/helper/cmd.rb
|
146
162
|
- lib/serverspec/helper/configuration.rb
|
147
163
|
- lib/serverspec/helper/darwin.rb
|
148
164
|
- lib/serverspec/helper/debian.rb
|
@@ -157,6 +173,8 @@ files:
|
|
157
173
|
- lib/serverspec/helper/solaris11.rb
|
158
174
|
- lib/serverspec/helper/ssh.rb
|
159
175
|
- lib/serverspec/helper/type.rb
|
176
|
+
- lib/serverspec/helper/windows.rb
|
177
|
+
- lib/serverspec/helper/winrm.rb
|
160
178
|
- lib/serverspec/matchers.rb
|
161
179
|
- lib/serverspec/matchers/be_enabled.rb
|
162
180
|
- lib/serverspec/matchers/be_executable.rb
|
@@ -200,14 +218,18 @@ files:
|
|
200
218
|
- lib/serverspec/type/selinux.rb
|
201
219
|
- lib/serverspec/type/service.rb
|
202
220
|
- lib/serverspec/type/user.rb
|
221
|
+
- lib/serverspec/type/windows_registry_key.rb
|
203
222
|
- lib/serverspec/type/yumrepo.rb
|
204
223
|
- lib/serverspec/type/zfs.rb
|
205
224
|
- lib/serverspec/version.rb
|
206
225
|
- serverspec.gemspec
|
226
|
+
- spec/backend/cmd/configuration_spec.rb
|
207
227
|
- spec/backend/exec/build_command_spec.rb
|
208
228
|
- spec/backend/exec/configuration_spec.rb
|
229
|
+
- spec/backend/powershell/script_helper_spec.rb
|
209
230
|
- spec/backend/ssh/build_command_spec.rb
|
210
231
|
- spec/backend/ssh/configuration_spec.rb
|
232
|
+
- spec/backend/winrm/configuration_spec.rb
|
211
233
|
- spec/darwin/command_spec.rb
|
212
234
|
- spec/darwin/cron_spec.rb
|
213
235
|
- spec/darwin/default_gateway_spec.rb
|
@@ -321,6 +343,11 @@ files:
|
|
321
343
|
- spec/solaris11/user_spec.rb
|
322
344
|
- spec/solaris11/zfs_spec.rb
|
323
345
|
- spec/spec_helper.rb
|
346
|
+
- spec/support/powershell_command_runner.rb
|
347
|
+
- spec/windows/file_spec.rb
|
348
|
+
- spec/windows/group_spec.rb
|
349
|
+
- spec/windows/port_spec.rb
|
350
|
+
- spec/windows/user_spec.rb
|
324
351
|
homepage: http://serverspec.org/
|
325
352
|
licenses:
|
326
353
|
- MIT
|
@@ -346,10 +373,13 @@ signing_key:
|
|
346
373
|
specification_version: 4
|
347
374
|
summary: RSpec tests for your servers configured by Puppet, Chef or anything else
|
348
375
|
test_files:
|
376
|
+
- spec/backend/cmd/configuration_spec.rb
|
349
377
|
- spec/backend/exec/build_command_spec.rb
|
350
378
|
- spec/backend/exec/configuration_spec.rb
|
379
|
+
- spec/backend/powershell/script_helper_spec.rb
|
351
380
|
- spec/backend/ssh/build_command_spec.rb
|
352
381
|
- spec/backend/ssh/configuration_spec.rb
|
382
|
+
- spec/backend/winrm/configuration_spec.rb
|
353
383
|
- spec/darwin/command_spec.rb
|
354
384
|
- spec/darwin/cron_spec.rb
|
355
385
|
- spec/darwin/default_gateway_spec.rb
|
@@ -463,3 +493,8 @@ test_files:
|
|
463
493
|
- spec/solaris11/user_spec.rb
|
464
494
|
- spec/solaris11/zfs_spec.rb
|
465
495
|
- spec/spec_helper.rb
|
496
|
+
- spec/support/powershell_command_runner.rb
|
497
|
+
- spec/windows/file_spec.rb
|
498
|
+
- spec/windows/group_spec.rb
|
499
|
+
- spec/windows/port_spec.rb
|
500
|
+
- spec/windows/user_spec.rb
|