serverspec 0.10.1 → 0.10.2
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/Rakefile +1 -1
- data/lib/serverspec.rb +2 -0
- data/lib/serverspec/backend/exec.rb +2 -0
- data/lib/serverspec/commands/plamo.rb +21 -0
- data/lib/serverspec/helper.rb +1 -0
- data/lib/serverspec/helper/plamo.rb +9 -0
- data/lib/serverspec/version.rb +1 -1
- data/spec/plamo/command_spec.rb +50 -0
- data/spec/plamo/cron_spec.rb +23 -0
- data/spec/plamo/default_gateway_spec.rb +18 -0
- data/spec/plamo/file_spec.rb +397 -0
- data/spec/plamo/group_spec.rb +24 -0
- data/spec/plamo/host_spec.rb +60 -0
- data/spec/plamo/interface_spec.rb +26 -0
- data/spec/plamo/iptables_spec.rb +23 -0
- data/spec/plamo/kernel_module_spec.rb +14 -0
- data/spec/plamo/linux_kernel_parameter_spec.rb +38 -0
- data/spec/plamo/mail_alias_spec.rb +14 -0
- data/spec/plamo/package_spec.rb +102 -0
- data/spec/plamo/php_config_spec.rb +38 -0
- data/spec/plamo/port_spec.rb +32 -0
- data/spec/plamo/routing_table_spec.rb +122 -0
- data/spec/plamo/selinux_spec.rb +20 -0
- data/spec/plamo/service_spec.rb +86 -0
- data/spec/plamo/service_spec.rb.plamo +63 -0
- data/spec/plamo/user_spec.rb +59 -0
- data/spec/plamo/zfs_spec.rb +20 -0
- metadata +44 -2
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe group('root') do
|
8
|
+
it { should exist }
|
9
|
+
its(:command) { should eq "getent group | grep -wq -- root" }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe group('invalid-group') do
|
13
|
+
it { should_not exist }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe group('root') do
|
17
|
+
it { should have_gid 0 }
|
18
|
+
its(:command) { should eq "getent group | grep -w -- \\^root | cut -f 3 -d ':' | grep -w -- 0" }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe group('root') do
|
22
|
+
it { should_not have_gid 'invalid-gid' }
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe host('127.0.0.1') do
|
8
|
+
it { should be_resolvable }
|
9
|
+
its(:command) { should eq "getent hosts 127.0.0.1" }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe host('invalid-name') do
|
13
|
+
it { should_not be_resolvable }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe host('127.0.0.1') do
|
17
|
+
it { should be_resolvable.by('hosts') }
|
18
|
+
its(:command) { should eq "grep -w -- 127.0.0.1 /etc/hosts" }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe host('invalid-name') do
|
22
|
+
it { should_not be_resolvable.by('hosts') }
|
23
|
+
end
|
24
|
+
|
25
|
+
describe host('127.0.0.1') do
|
26
|
+
it { should be_resolvable.by('dns') }
|
27
|
+
its(:command) { should eq "nslookup -timeout=1 127.0.0.1" }
|
28
|
+
end
|
29
|
+
|
30
|
+
describe host('invalid-name') do
|
31
|
+
it { should_not be_resolvable.by('dns') }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe host('127.0.0.1') do
|
35
|
+
it { should be_reachable }
|
36
|
+
its(:command) { should eq "ping -n 127.0.0.1 -w 5 -c 2" }
|
37
|
+
end
|
38
|
+
|
39
|
+
describe host('invalid-host') do
|
40
|
+
it { should_not be_reachable }
|
41
|
+
end
|
42
|
+
|
43
|
+
describe host('127.0.0.1') do
|
44
|
+
it { should be_reachable.with(:proto => "icmp", :timeout=> 1) }
|
45
|
+
its(:command) { should eq "ping -n 127.0.0.1 -w 1 -c 2" }
|
46
|
+
end
|
47
|
+
|
48
|
+
describe host('127.0.0.1') do
|
49
|
+
it { should be_reachable.with(:proto => "tcp", :port => 22, :timeout=> 1) }
|
50
|
+
its(:command) { should eq "nc -vvvvzt 127.0.0.1 22 -w 1" }
|
51
|
+
end
|
52
|
+
|
53
|
+
describe host('127.0.0.1') do
|
54
|
+
it { should be_reachable.with(:proto => "udp", :port => 53, :timeout=> 1) }
|
55
|
+
its(:command) { should eq "nc -vvvvzu 127.0.0.1 53 -w 1" }
|
56
|
+
end
|
57
|
+
|
58
|
+
describe host('invalid-host') do
|
59
|
+
it { should_not be_reachable.with(:proto => "udp", :port => 53, :timeout=> 1) }
|
60
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe interface('eth0') do
|
8
|
+
let(:stdout) { '1000' }
|
9
|
+
its(:speed) { should eq 1000 }
|
10
|
+
its(:command) { should eq "ethtool eth0 | grep Speed | gawk '{print gensub(/Speed: ([0-9]+)Mb\\/s/,\"\\\\1\",\"\")}'" }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe interface('eth0') do
|
14
|
+
it { should have_ipv4_address("192.168.10.10") }
|
15
|
+
its(:command) { should eq "ip addr show eth0 | grep 'inet 192\\.168\\.10\\.10/'" }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe interface('eth0') do
|
19
|
+
it { should have_ipv4_address("192.168.10.10/24") }
|
20
|
+
its(:command) { should eq "ip addr show eth0 | grep 'inet 192\\.168\\.10\\.10/24 '" }
|
21
|
+
end
|
22
|
+
|
23
|
+
describe interface('invalid-interface') do
|
24
|
+
let(:stdout) { '1000' }
|
25
|
+
its(:speed) { should_not eq 100 }
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe iptables do
|
8
|
+
it { should have_rule '-P INPUT ACCEPT' }
|
9
|
+
its(:command) { should eq "iptables -S | grep -- -P\\ INPUT\\ ACCEPT" }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe iptables do
|
13
|
+
it { should_not have_rule 'invalid-rule' }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe iptables do
|
17
|
+
it { should have_rule('-P INPUT ACCEPT').with_table('mangle').with_chain('INPUT') }
|
18
|
+
its(:command) { should eq "iptables -t mangle -S INPUT | grep -- -P\\ INPUT\\ ACCEPT" }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe iptables do
|
22
|
+
it { should_not have_rule('invalid-rule').with_table('mangle').with_chain('INPUT') }
|
23
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe kernel_module('lp') do
|
8
|
+
it { should be_loaded }
|
9
|
+
its(:command) { should eq "lsmod | grep ^lp" }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe kernel_module('invalid-module') do
|
13
|
+
it { should_not be_loaded }
|
14
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe linux_kernel_parameter('net.ipv4.tcp_syncookies') do
|
8
|
+
let(:stdout) { "1\n" }
|
9
|
+
its(:value) { should eq 1 }
|
10
|
+
its(:command) { should eq "/sbin/sysctl -q -n net.ipv4.tcp_syncookies" }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe linux_kernel_parameter('net.ipv4.tcp_syncookies') do
|
14
|
+
let(:stdout) { "1\n" }
|
15
|
+
its(:value) { should_not eq 2 }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe linux_kernel_parameter('kernel.osrelease') do
|
19
|
+
let(:stdout) { "2.6.32-131.0.15.el6.x86_64\n" }
|
20
|
+
its(:value) { should eq "2.6.32-131.0.15.el6.x86_64" }
|
21
|
+
its(:command) { should eq "/sbin/sysctl -q -n kernel.osrelease" }
|
22
|
+
end
|
23
|
+
|
24
|
+
describe linux_kernel_parameter('kernel.osrelease') do
|
25
|
+
let(:stdout) { "2.6.32-131.0.15.el6.x86_64\n" }
|
26
|
+
its(:value) { should_not eq "2.6.32-131.0.15.el6.i386" }
|
27
|
+
end
|
28
|
+
|
29
|
+
describe linux_kernel_parameter('net.ipv4.tcp_wmem') do
|
30
|
+
let(:stdout) { "4096 16384 4194304\n" }
|
31
|
+
its(:value) { should match /16384/ }
|
32
|
+
its(:command) { should eq "/sbin/sysctl -q -n net.ipv4.tcp_wmem" }
|
33
|
+
end
|
34
|
+
|
35
|
+
describe linux_kernel_parameter('net.ipv4.tcp_wmem') do
|
36
|
+
let(:stdout) { "4096 16384 4194304\n" }
|
37
|
+
its(:value) { should_not match /123456/ }
|
38
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe mail_alias('daemon') do
|
8
|
+
it { should be_aliased_to "root" }
|
9
|
+
its(:command) { should eq "getent aliases daemon | grep -- \\[\\[:space:\\]\\]root$" }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe mail_alias('invalid-recipient') do
|
13
|
+
it { should_not be_aliased_to "foo" }
|
14
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe package('httpd') do
|
8
|
+
it { should be_installed }
|
9
|
+
its(:command) { should eq "ls /var/log/packages/httpd" }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe package('invalid-package') do
|
13
|
+
it { should_not be_installed }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe package('httpd') do
|
17
|
+
it { should be_installed.with_version('1.1.1') }
|
18
|
+
its(:command) { should eq "ls /var/log/packages/httpd && grep -E \"PACKAGE NAME:.+httpd-1.1.1\" /var/log/packages/httpd" }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe package('invalid-package') do
|
22
|
+
it { should_not be_installed.with_version('invalid-version') }
|
23
|
+
end
|
24
|
+
|
25
|
+
describe package('jekyll') do
|
26
|
+
it { should be_installed.by('gem') }
|
27
|
+
its(:command) { should eq "gem list --local | grep -w -- \\^jekyll" }
|
28
|
+
end
|
29
|
+
|
30
|
+
describe package('invalid-gem') do
|
31
|
+
it { should_not be_installed.by('gem') }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe package('jekyll') do
|
35
|
+
it { should be_installed.by('gem').with_version('1.1.1') }
|
36
|
+
its(:command) { should eq "gem list --local | grep -w -- \\^jekyll | grep -w -- 1.1.1" }
|
37
|
+
end
|
38
|
+
|
39
|
+
describe package('jekyll') do
|
40
|
+
it { should_not be_installed.by('gem').with_version('invalid-version') }
|
41
|
+
end
|
42
|
+
|
43
|
+
describe package('bower') do
|
44
|
+
it { should be_installed.by('npm') }
|
45
|
+
its(:command) { should eq "npm ls bower -g" }
|
46
|
+
end
|
47
|
+
|
48
|
+
describe package('invalid-npm-package') do
|
49
|
+
it { should_not be_installed.by('npm') }
|
50
|
+
end
|
51
|
+
|
52
|
+
describe package('bower') do
|
53
|
+
it { should be_installed.by('npm').with_version('0.9.2') }
|
54
|
+
its(:command) { should eq "npm ls bower -g | grep -w -- 0.9.2" }
|
55
|
+
end
|
56
|
+
|
57
|
+
describe package('bower') do
|
58
|
+
it { should_not be_installed.by('npm').with_version('invalid-version') }
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
describe package('mongo') do
|
63
|
+
it { should be_installed.by('pecl') }
|
64
|
+
its(:command) { should eq "pecl list | grep -w -- \\^mongo" }
|
65
|
+
end
|
66
|
+
|
67
|
+
describe package('invalid-pecl') do
|
68
|
+
it { should_not be_installed.by('pecl') }
|
69
|
+
end
|
70
|
+
|
71
|
+
describe package('mongo') do
|
72
|
+
it { should be_installed.by('pecl').with_version('1.4.1') }
|
73
|
+
its(:command) { should eq "pecl list | grep -w -- \\^mongo | grep -w -- 1.4.1" }
|
74
|
+
end
|
75
|
+
|
76
|
+
describe package('mongo') do
|
77
|
+
it { should_not be_installed.by('pecl').with_version('invalid-version') }
|
78
|
+
end
|
79
|
+
|
80
|
+
describe package('XML_Util') do
|
81
|
+
it { should be_installed.by('pear').with_version('1.2.1') }
|
82
|
+
its(:command) { should eq "pear list | grep -w -- \\^XML_Util | grep -w -- 1.2.1" }
|
83
|
+
end
|
84
|
+
|
85
|
+
describe package('supervisor') do
|
86
|
+
it { should be_installed.by('pip').with_version('3.0') }
|
87
|
+
its(:command) { should eq "pip list | grep -w -- \\^supervisor | grep -w -- 3.0" }
|
88
|
+
end
|
89
|
+
|
90
|
+
describe package('invalid-pip') do
|
91
|
+
it { should_not be_installed.by('pip').with_version('invalid-version') }
|
92
|
+
end
|
93
|
+
|
94
|
+
describe package('App::Ack') do
|
95
|
+
it { should be_installed.by('cpan') }
|
96
|
+
its(:command) { should eq "cpan -l | grep -w -- \\^App::Ack" }
|
97
|
+
end
|
98
|
+
|
99
|
+
describe package('App::Ack') do
|
100
|
+
it { should be_installed.by('cpan').with_version('2.04') }
|
101
|
+
its(:command) { should eq "cpan -l | grep -w -- \\^App::Ack | grep -w -- 2.04" }
|
102
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe php_config('default_mimetype') do
|
8
|
+
let(:stdout) { 'text/html' }
|
9
|
+
its(:value) { should eq 'text/html' }
|
10
|
+
its(:command) { should eq "php -r 'echo get_cfg_var( \"default_mimetype\" );'" }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe php_config('default_mimetype') do
|
14
|
+
let(:stdout) { 'text/html' }
|
15
|
+
its(:value) { should_not eq 'text/plain' }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe php_config('session.cache_expire') do
|
19
|
+
let(:stdout) { '180' }
|
20
|
+
its(:value) { should eq 180 }
|
21
|
+
its(:command) { should eq "php -r 'echo get_cfg_var( \"session.cache_expire\" );'" }
|
22
|
+
end
|
23
|
+
|
24
|
+
describe php_config('session.cache_expire') do
|
25
|
+
let(:stdout) { '180' }
|
26
|
+
its(:value) { should_not eq 360 }
|
27
|
+
end
|
28
|
+
|
29
|
+
describe php_config('mbstring.http_output_conv_mimetypes') do
|
30
|
+
let(:stdout) { 'application' }
|
31
|
+
its(:value) { should match /application/ }
|
32
|
+
its(:command) { should eq "php -r 'echo get_cfg_var( \"mbstring.http_output_conv_mimetypes\" );'" }
|
33
|
+
end
|
34
|
+
|
35
|
+
describe php_config('mbstring.http_output_conv_mimetypes') do
|
36
|
+
let(:stdout) { 'application' }
|
37
|
+
its(:value) { should_not match /html/ }
|
38
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe port(80) do
|
8
|
+
it { should be_listening }
|
9
|
+
its(:command) { should eq 'netstat -tunl | grep -- :80\\ ' }
|
10
|
+
end
|
11
|
+
|
12
|
+
describe port('invalid') do
|
13
|
+
it { should_not be_listening }
|
14
|
+
end
|
15
|
+
|
16
|
+
describe port(80) do
|
17
|
+
it { should be_listening.with("tcp") }
|
18
|
+
its(:command) { should eq 'netstat -tunl | grep -- \\^tcp\\ .\\*:80\\ ' }
|
19
|
+
end
|
20
|
+
|
21
|
+
describe port(123) do
|
22
|
+
it { should be_listening.with("udp") }
|
23
|
+
its(:command) { should eq 'netstat -tunl | grep -- \\^udp\\ .\\*:123\\ ' }
|
24
|
+
end
|
25
|
+
|
26
|
+
describe port(80) do
|
27
|
+
it {
|
28
|
+
expect {
|
29
|
+
should be_listening.with('not implemented')
|
30
|
+
}.to raise_error(ArgumentError, %r/\A`be_listening` matcher doesn\'t support/)
|
31
|
+
}
|
32
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.configure do |c|
|
4
|
+
c.os = 'Plamo'
|
5
|
+
end
|
6
|
+
|
7
|
+
describe routing_table do
|
8
|
+
let(:stdout) { "192.168.100.0/24 dev eth1 proto kernel scope link src 192.168.100.10 \r\ndefault via 192.168.100.1 dev eth0 \r\n" }
|
9
|
+
it { should have_entry( :destination => '192.168.100.0/24' ) }
|
10
|
+
its(:command) { should eq "ip route | grep -E '^192.168.100.0/24 |^default '" }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe routing_table do
|
14
|
+
let(:stdout) { "192.168.100.0/24 dev eth1 proto kernel scope link src 192.168.100.10 \r\ndefault via 192.168.100.1 dev eth0 \r\n" }
|
15
|
+
it { should_not have_entry( :destination => '192.168.100.100/24' ) }
|
16
|
+
its(:command) { should eq "ip route | grep -E '^192.168.100.100/24 |^default '" }
|
17
|
+
end
|
18
|
+
|
19
|
+
describe routing_table do
|
20
|
+
let(:stdout) { "192.168.100.0/24 dev eth1 proto kernel scope link src 192.168.100.10 \r\ndefault via 192.168.100.1 dev eth0 \r\n" }
|
21
|
+
it do
|
22
|
+
should have_entry(
|
23
|
+
:destination => '192.168.100.0/24',
|
24
|
+
:gateway => '192.168.100.1'
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
it do
|
29
|
+
should have_entry(
|
30
|
+
:destination => '192.168.100.0/24',
|
31
|
+
:gateway => '192.168.100.1',
|
32
|
+
:interface => 'eth1'
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
it do
|
37
|
+
should_not have_entry(
|
38
|
+
:gateway => '192.168.100.1',
|
39
|
+
:interface => 'eth1'
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
it do
|
44
|
+
should_not have_entry(
|
45
|
+
:destination => '192.168.100.0/32',
|
46
|
+
:gateway => '192.168.100.1',
|
47
|
+
:interface => 'eth1'
|
48
|
+
)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe routing_table do
|
53
|
+
let(:stdout) { "192.168.200.0/24 via 192.168.200.1 dev eth0 \r\ndefault via 192.168.100.1 dev eth0 \r\n" }
|
54
|
+
it { should have_entry( :destination => '192.168.200.0/24' ) }
|
55
|
+
it { should_not have_entry( :destination => '192.168.200.200/24' ) }
|
56
|
+
|
57
|
+
it do
|
58
|
+
should have_entry(
|
59
|
+
:destination => '192.168.200.0/24',
|
60
|
+
:gateway => '192.168.200.1'
|
61
|
+
)
|
62
|
+
end
|
63
|
+
|
64
|
+
it do
|
65
|
+
should have_entry(
|
66
|
+
:destination => '192.168.200.0/24',
|
67
|
+
:gateway => '192.168.200.1',
|
68
|
+
:interface => 'eth0'
|
69
|
+
)
|
70
|
+
end
|
71
|
+
|
72
|
+
it do
|
73
|
+
should_not have_entry(
|
74
|
+
:gateway => '192.168.200.1',
|
75
|
+
:interface => 'eth0'
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
it do
|
80
|
+
should_not have_entry(
|
81
|
+
:destination => '192.168.200.0/32',
|
82
|
+
:gateway => '192.168.200.1',
|
83
|
+
:interface => 'eth0'
|
84
|
+
)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe routing_table do
|
89
|
+
let(:stdout) { "default via 10.0.2.2 dev eth0 \r\n" }
|
90
|
+
it { should have_entry( :destination => 'default' ) }
|
91
|
+
it { should_not have_entry( :destination => 'defaulth' ) }
|
92
|
+
|
93
|
+
it do
|
94
|
+
should have_entry(
|
95
|
+
:destination => 'default',
|
96
|
+
:gateway => '10.0.2.2'
|
97
|
+
)
|
98
|
+
end
|
99
|
+
|
100
|
+
it do
|
101
|
+
should have_entry(
|
102
|
+
:destination => 'default',
|
103
|
+
:gateway => '10.0.2.2',
|
104
|
+
:interface => 'eth0'
|
105
|
+
)
|
106
|
+
end
|
107
|
+
|
108
|
+
it do
|
109
|
+
should_not have_entry(
|
110
|
+
:gateway => '10.0.2.2',
|
111
|
+
:interface => 'eth0'
|
112
|
+
)
|
113
|
+
end
|
114
|
+
|
115
|
+
it do
|
116
|
+
should_not have_entry(
|
117
|
+
:destination => 'default',
|
118
|
+
:gateway => '10.0.2.1',
|
119
|
+
:interface => 'eth0'
|
120
|
+
)
|
121
|
+
end
|
122
|
+
end
|