summaryrefslogtreecommitdiffstats
path: root/plugins/t/check_fping.t
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/t/check_fping.t')
-rw-r--r--plugins/t/check_fping.t34
1 files changed, 34 insertions, 0 deletions
diff --git a/plugins/t/check_fping.t b/plugins/t/check_fping.t
new file mode 100644
index 0000000..67b357b
--- /dev/null
+++ b/plugins/t/check_fping.t
@@ -0,0 +1,34 @@
+#! /usr/bin/perl -w -I ..
+#
+# FPing Tests via check_fping
+#
+#
+
+use strict;
+use Test::More;
+use NPTest;
+
+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 $res;
+
+my $fping = qx(which fping 2> /dev/null);
+chomp($fping);
+if( ! -x "./check_fping") {
+ plan skip_all => "check_fping not found, skipping tests";
+}
+elsif ( !$fping || !-x $fping ) {
+ plan skip_all => "fping not found or cannot be executed, skipping tests";
+} else {
+ plan tests => 3;
+ $res = NPTest->testCmd( "./check_fping $host_responsive" );
+ cmp_ok( $res->return_code, '==', 0, "Responsive host returns OK");
+
+ $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");
+}