mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-06-08 16:26:23 -04:00
Refactor check_fping
* Set correct amount of tests based on conditionals. * When running the test as non-root, we would previously check is the setuid bit is set. This doesn't seem to be needed, so just check if the binary is executable for the user running the test. * Use cmp_ok to check if tests succeeds rather than couting. Signed-off-by: Jacob Hansen <jhansen@op5.com>
This commit is contained in:
parent
227369bb3b
commit
0bbcb60f02
1 changed files with 14 additions and 15 deletions
|
|
@ -5,31 +5,30 @@
|
|||
#
|
||||
|
||||
use strict;
|
||||
use Test;
|
||||
use Test::More;
|
||||
use NPTest;
|
||||
|
||||
use vars qw($tests);
|
||||
|
||||
BEGIN {$tests = 4; plan tests => $tests}
|
||||
|
||||
my $host_responsive = getTestParameter("NP_HOST_RESPONSIVE", "The hostname of system responsive to network requests", "localhost");
|
||||
my $host_nonresponsive = getTestParameter("NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1");
|
||||
my $hostname_invalid = getTestParameter("NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost");
|
||||
|
||||
my $t;
|
||||
my $res;
|
||||
|
||||
my $fping = qx(which fping 2> /dev/null);
|
||||
chomp($fping);
|
||||
if( ! -x "./check_fping") {
|
||||
$t += skipMissingCmd( "./check_fping", $tests );
|
||||
plan skip_all => "check_fping not found, skipping tests";
|
||||
}
|
||||
elsif ( $> != 0 && (!$fping || ! -u $fping)) {
|
||||
$t += skipMsg( "./check_fping", $tests );
|
||||
elsif ( !$fping || !-x $fping ) {
|
||||
plan skip_all => "fping not found or cannot be executed, skipping tests";
|
||||
} else {
|
||||
$t += checkCmd( "./check_fping $host_responsive", 0, '/^FPING OK - /' );
|
||||
$t += checkCmd( "./check_fping $host_nonresponsive", 2, '/^FPING CRITICAL - /' );
|
||||
$t += checkCmd( "./check_fping $hostname_invalid", 3, '/^FPING UNKNOWN - /' );
|
||||
}
|
||||
plan tests => 3;
|
||||
$res = NPTest->testCmd( "./check_fping $host_responsive" );
|
||||
cmp_ok( $res->return_code, '==', 0, "Responsive host returns OK");
|
||||
|
||||
exit(0) if defined($Test::Harness::VERSION);
|
||||
exit($tests - $t);
|
||||
$res = NPTest->testCmd( "./check_fping $host_nonresponsive" );
|
||||
cmp_ok( $res->return_code, '==', 2, "Non-Responsive host returns Critical");
|
||||
|
||||
$res = NPTest->testCmd( "./check_fping $hostname_invalid" );
|
||||
cmp_ok( $res->return_code, '==', 3, "Invalid host returns Unknown");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue