diff options
author | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | 2007-12-04 12:38:56 +0000 |
---|---|---|
committer | Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> | 2007-12-04 12:38:56 +0000 |
commit | 0d34c4da9decb76ea32b73c68497a6b83a791bd1 (patch) | |
tree | f6c6583fa76f6740afc733eb1cd379c0f3b5f1e3 /plugins/t | |
parent | ee6c34108031a217a5e92df50a1cb6544ff07cf9 (diff) | |
download | monitoring-plugins-0d34c4da9decb76ea32b73c68497a6b83a791bd1.tar.gz |
Merge changes from branches/dermoth_ntp_rework (check_ntp_peer/check_ntp_time)
NEWS | 13
plugins/Makefile.am | 8
plugins/check_ntp_peer.c | 628 ++++++++++++++++-------------------------------
plugins/check_ntp_time.c | 323 ++----------------------
plugins/t/check_ntp.t | 92 +++++-
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1846 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins/t')
-rw-r--r-- | plugins/t/check_ntp.t | 92 |
1 files changed, 73 insertions, 19 deletions
diff --git a/plugins/t/check_ntp.t b/plugins/t/check_ntp.t index 6e222a38..ae7f0369 100644 --- a/plugins/t/check_ntp.t +++ b/plugins/t/check_ntp.t @@ -9,7 +9,10 @@ use strict; use Test::More; use NPTest; -plan tests => 4; +my @PLUGINS1 = ('check_ntp', 'check_ntp_peer', 'check_ntp_time'); +my @PLUGINS2 = ('check_ntp_peer'); + +plan tests => (12 * scalar(@PLUGINS1)) + (6 * scalar(@PLUGINS2)); my $res; @@ -25,33 +28,84 @@ 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", +my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", "An invalid (not known to DNS) hostname", "nosuchhost"); -SKIP: { - skip "No NTP server defined", 1 unless $ntp_service; +my $ntp_okmatch1 = '/^NTP\sOK:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/'; +my $ntp_warnmatch1 = '/^NTP\sWARNING:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/'; +my $ntp_critmatch1 = '/^NTP\sCRITICAL:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/'; +my $ntp_okmatch2 = '/^NTP\sOK:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs,\sjitter=[0-9]+\.[0-9]+,\sstratum=[0-9]{1,2}/'; +my $ntp_warnmatch2 = '/^NTP\sWARNING:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs,\sjitter=[0-9]+\.[0-9]+,\sstratum=[0-9]{1,2}/'; +my $ntp_critmatch2 = '/^NTP\sCRITICAL:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs,\sjitter=[0-9]+\.[0-9]+,\sstratum=[0-9]{1,2}/'; +my $ntp_noresponse = '/^(CRITICAL - Socket timeout after 3 seconds)|(NTP CRITICAL: No response from NTP server)$/'; +my $ntp_nosuchhost = '/^check_ntp.*: Invalid hostname/address - ' . $hostname_invalid . '/'; + + +foreach my $plugin (@PLUGINS1) { + SKIP: { + skip "No NTP server defined", 1 unless $ntp_service; + $res = NPTest->testCmd( + "./$plugin -H $ntp_service -w 1000 -c 2000" + ); + cmp_ok( $res->return_code, '==', 0, "$plugin: Good NTP result (simple check)" ); + like( $res->output, $ntp_okmatch1, "$plugin: Output match OK (simple check)" ); + + $res = NPTest->testCmd( + "./$plugin -H $ntp_service -w 1000: -c 2000" + ); + cmp_ok( $res->return_code, '==', 1, "$plugin: Warning NTP result (simple check)" ); + like( $res->output, $ntp_warnmatch1, "$plugin: Output match WARNING (simple check)" ); + + $res = NPTest->testCmd( + "./$plugin -H $ntp_service -w 1000 -c 2000:" + ); + cmp_ok( $res->return_code, '==', 2, "$plugin: Critical NTP result (simple check)" ); + like( $res->output, $ntp_critmatch1, "$plugin: Output match CRITICAL (simple check)" ); + } + + SKIP: { + skip "No bad NTP server defined", 1 unless $no_ntp_service; + $res = NPTest->testCmd( + "./$plugin -H $no_ntp_service -t 3" + ); + cmp_ok( $res->return_code, '==', 2, "$plugin: No NTP service" ); + like( $res->output, $ntp_noresponse, "$plugin: Output match no NTP service" ); + } + $res = NPTest->testCmd( - "./check_ntp -H $ntp_service" + "./$plugin -H $host_nonresponsive -t 3" ); - cmp_ok( $res->return_code, '==', 0, "Got good NTP result"); -} + cmp_ok( $res->return_code, '==', 2, "$plugin: Server not responding" ); + like( $res->output, $ntp_noresponse, "$plugin: Output match non-responsive" ); -SKIP: { - skip "No bad NTP server defined", 1 unless $no_ntp_service; $res = NPTest->testCmd( - "./check_ntp -H $no_ntp_service" + "./$plugin -H $hostname_invalid" ); - cmp_ok( $res->return_code, '==', 2, "Got bad NTP result"); + cmp_ok( $res->return_code, '==', 3, "$plugin: Invalid hostname/address" ); + like( $res->output, $ntp_nosuchhost, "$plugin: Output match invalid hostname/address" ); + } -$res = NPTest->testCmd( - "./check_ntp -H $host_nonresponsive" - ); -cmp_ok( $res->return_code, '==', 2, "Got critical if server not responding"); +foreach my $plugin (@PLUGINS2) { + SKIP: { + skip "No NTP server defined", 1 unless $ntp_service; + $res = NPTest->testCmd( + "./$plugin -H $ntp_service -w 1000 -c 2000 -W 20 -C 21 -j 100000 -k 200000" + ); + cmp_ok( $res->return_code, '==', 0, "$plugin: Good NTP result with jitter and stratum check" ); + like( $res->output, $ntp_okmatch2, "$plugin: Output match OK with jitter and stratum" ); -$res = NPTest->testCmd( - "./check_ntp -H $hostname_invalid" - ); -cmp_ok( $res->return_code, '==', 3, "Got critical if server hostname invalid"); + $res = NPTest->testCmd( + "./$plugin -H $ntp_service -w 1000 -c 2000 -W ~:-1 -C 21 -j 100000 -k 200000" + ); + cmp_ok( $res->return_code, '==', 1, "$plugin: Warning NTP result with jitter and stratum check" ); + like( $res->output, $ntp_warnmatch2, "$plugin: Output match WARNING with jitter and stratum" ); + $res = NPTest->testCmd( + "./$plugin -H $ntp_service -w 1000 -c 2000 -W 20 -C 21 -j 100000 -k ~:-1" + ); + cmp_ok( $res->return_code, '==', 2, "$plugin: Critical NTP result with jitter and stratum check" ); + like( $res->output, $ntp_critmatch2, "$plugin: Output match CRITICAL with jitter and stratum" ); + } +} |