summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Hansen <jhansen@op5.com>2021-05-19 13:13:47 +0200
committerJacob Hansen <jhansen@op5.com>2021-05-19 13:36:04 +0200
commit0bbcb60f02d6f78561f684adb0294870a3522e4f (patch)
treed9ce1ec175d2b75280a08754a75191ad5d05ef94
parent227369bb3bec2a44ebece952a9085bfb032a7a0e (diff)
downloadmonitoring-plugins-0bbcb60f02d6f78561f684adb0294870a3522e4f.tar.gz
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>
-rw-r--r--plugins/t/check_fping.t29
1 files changed, 14 insertions, 15 deletions
diff --git a/plugins/t/check_fping.t b/plugins/t/check_fping.t
index 03a6110e..67b357b2 100644
--- a/plugins/t/check_fping.t
+++ b/plugins/t/check_fping.t
@@ -5,31 +5,30 @@
5# 5#
6 6
7use strict; 7use strict;
8use Test; 8use Test::More;
9use NPTest; 9use NPTest;
10 10
11use vars qw($tests);
12
13BEGIN {$tests = 4; plan tests => $tests}
14
15my $host_responsive = getTestParameter("NP_HOST_RESPONSIVE", "The hostname of system responsive to network requests", "localhost"); 11my $host_responsive = getTestParameter("NP_HOST_RESPONSIVE", "The hostname of system responsive to network requests", "localhost");
16my $host_nonresponsive = getTestParameter("NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1"); 12my $host_nonresponsive = getTestParameter("NP_HOST_NONRESPONSIVE", "The hostname of system not responsive to network requests", "10.0.0.1");
17my $hostname_invalid = getTestParameter("NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost"); 13my $hostname_invalid = getTestParameter("NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost");
18 14
19my $t; 15my $res;
20 16
21my $fping = qx(which fping 2> /dev/null); 17my $fping = qx(which fping 2> /dev/null);
22chomp($fping); 18chomp($fping);
23if( ! -x "./check_fping") { 19if( ! -x "./check_fping") {
24 $t += skipMissingCmd( "./check_fping", $tests ); 20 plan skip_all => "check_fping not found, skipping tests";
25} 21}
26elsif ( $> != 0 && (!$fping || ! -u $fping)) { 22elsif ( !$fping || !-x $fping ) {
27 $t += skipMsg( "./check_fping", $tests ); 23 plan skip_all => "fping not found or cannot be executed, skipping tests";
28} else { 24} else {
29 $t += checkCmd( "./check_fping $host_responsive", 0, '/^FPING OK - /' ); 25 plan tests => 3;
30 $t += checkCmd( "./check_fping $host_nonresponsive", 2, '/^FPING CRITICAL - /' ); 26 $res = NPTest->testCmd( "./check_fping $host_responsive" );
31 $t += checkCmd( "./check_fping $hostname_invalid", 3, '/^FPING UNKNOWN - /' ); 27 cmp_ok( $res->return_code, '==', 0, "Responsive host returns OK");
32}
33 28
34exit(0) if defined($Test::Harness::VERSION); 29 $res = NPTest->testCmd( "./check_fping $host_nonresponsive" );
35exit($tests - $t); 30 cmp_ok( $res->return_code, '==', 2, "Non-Responsive host returns Critical");
31
32 $res = NPTest->testCmd( "./check_fping $hostname_invalid" );
33 cmp_ok( $res->return_code, '==', 3, "Invalid host returns Unknown");
34}