diff options
-rw-r--r-- | plugins-root/t/check_dhcp.t | 55 |
1 files changed, 35 insertions, 20 deletions
diff --git a/plugins-root/t/check_dhcp.t b/plugins-root/t/check_dhcp.t index 1f7c518..a7ce1e2 100644 --- a/plugins-root/t/check_dhcp.t +++ b/plugins-root/t/check_dhcp.t | |||
@@ -8,42 +8,57 @@ use Test::More; | |||
8 | use NPTest; | 8 | use NPTest; |
9 | 9 | ||
10 | my $allow_sudo = getTestParameter( "NP_ALLOW_SUDO", | 10 | my $allow_sudo = getTestParameter( "NP_ALLOW_SUDO", |
11 | "If sudo is setup for this user to run any command as root ('yes' to allow)", | 11 | "If sudo is setup for this user to run any command as root ('yes' to allow)", |
12 | "no" ); | 12 | "no" ); |
13 | 13 | ||
14 | if ($allow_sudo eq "yes" or $> == 0) { | 14 | if ($allow_sudo eq "yes" or $> == 0) { |
15 | plan tests => 4; | 15 | plan tests => 6; |
16 | } else { | 16 | } else { |
17 | plan skip_all => "Need sudo to test check_dhcp"; | 17 | plan skip_all => "Need sudo to test check_dhcp"; |
18 | } | 18 | } |
19 | my $sudo = $> == 0 ? '' : 'sudo'; | 19 | my $sudo = $> == 0 ? '' : 'sudo'; |
20 | 20 | ||
21 | my $successOutput = '/OK: Received \d+ DHCPOFFER\(s\), \d+ of 1 requested servers responded, max lease time = \d+ sec\./'; | 21 | my $successOutput = '/OK: Received \d+ DHCPOFFER\(s\), \d+ of 1 requested servers responded, max lease time = \d+ sec\./'; |
22 | my $failureOutput = '/CRITICAL: Received \d+ DHCPOFFER\(s\), 0 of \d+ requested servers responded/'; | 22 | my $failureOutput = '/CRITICAL: Received \d+ DHCPOFFER\(s\), 0 of \d+ requested servers responded/'; |
23 | my $invalidOutput = '/Invalid hostname/'; | ||
23 | 24 | ||
24 | my $host_responsive = getTestParameter( "NP_HOST_DHCP_RESPONSIVE", | 25 | my $host_responsive = getTestParameter( "NP_HOST_DHCP_RESPONSIVE", |
25 | "The hostname of system responsive to dhcp requests", | 26 | "The hostname of system responsive to dhcp requests", |
26 | "localhost" ); | 27 | "localhost" ); |
27 | 28 | ||
28 | my $host_nonresponsive = getTestParameter( "NP_HOST_NONRESPONSIVE", | 29 | my $host_nonresponsive = getTestParameter( "NP_HOST_NONRESPONSIVE", |
29 | "The hostname of system not responsive to dhcp requests", | 30 | "The hostname of system not responsive to dhcp requests", |
30 | "10.0.0.1" ); | 31 | "10.0.0.1" ); |
31 | 32 | ||
32 | my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", | 33 | my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", |
33 | "An invalid (not known to DNS) hostname", | 34 | "An invalid (not known to DNS) hostname", |
34 | "nosuchhost" ); | 35 | "nosuchhost" ); |
35 | 36 | ||
36 | my $res; | 37 | my $res; |
37 | 38 | ||
38 | $res = NPTest->testCmd( | 39 | SKIP: { |
39 | "$sudo ./check_dhcp -s $host_responsive" | 40 | skip('need responsive test host', 2) unless $host_responsive; |
40 | ); | 41 | $res = NPTest->testCmd( |
41 | is( $res->return_code, 0, "Syntax ok" ); | 42 | "$sudo ./check_dhcp -s $host_responsive" |
42 | like( $res->output, $successOutput, "Output OK" ); | 43 | ); |
44 | is( $res->return_code, 0, "Syntax ok" ); | ||
45 | like( $res->output, $successOutput, "Output OK" ); | ||
46 | }; | ||
43 | 47 | ||
44 | $res = NPTest->testCmd( | 48 | SKIP: { |
45 | "$sudo ./check_dhcp -s $host_nonresponsive" | 49 | skip('need nonresponsive test host', 2) unless $host_nonresponsive; |
46 | ); | 50 | $res = NPTest->testCmd( |
47 | is( $res->return_code, 2, "Timeout - host nonresponsive" ); | 51 | "$sudo ./check_dhcp -s $host_nonresponsive" |
48 | like( $res->output, $failureOutput, "Output OK" ); | 52 | ); |
53 | is( $res->return_code, 2, "Exit code - host nonresponsive" ); | ||
54 | like( $res->output, $failureOutput, "Output OK" ); | ||
55 | }; | ||
49 | 56 | ||
57 | SKIP: { | ||
58 | skip('need invalid test host', 2) unless $hostname_invalid; | ||
59 | $res = NPTest->testCmd( | ||
60 | "$sudo ./check_dhcp -s $hostname_invalid" | ||
61 | ); | ||
62 | is( $res->return_code, 3, "Exit code - host invalid" ); | ||
63 | like( $res->output, $invalidOutput, "Output OK" ); | ||
64 | }; | ||