diff options
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; | |||
| 9 | use Test::More; | 9 | use Test::More; |
| 10 | use NPTest; | 10 | use NPTest; |
| 11 | 11 | ||
| 12 | plan tests => 4; | 12 | my @PLUGINS1 = ('check_ntp', 'check_ntp_peer', 'check_ntp_time'); |
| 13 | my @PLUGINS2 = ('check_ntp_peer'); | ||
| 14 | |||
| 15 | plan tests => (12 * scalar(@PLUGINS1)) + (6 * scalar(@PLUGINS2)); | ||
| 13 | 16 | ||
| 14 | my $res; | 17 | my $res; |
| 15 | 18 | ||
| @@ -25,33 +28,84 @@ my $host_nonresponsive = getTestParameter( "NP_HOST_NONRESPONSIVE", | |||
| 25 | "The hostname of system not responsive to network requests", | 28 | "The hostname of system not responsive to network requests", |
| 26 | "10.0.0.1" ); | 29 | "10.0.0.1" ); |
| 27 | 30 | ||
| 28 | my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", | 31 | my $hostname_invalid = getTestParameter( "NP_HOSTNAME_INVALID", |
| 29 | "An invalid (not known to DNS) hostname", | 32 | "An invalid (not known to DNS) hostname", |
| 30 | "nosuchhost"); | 33 | "nosuchhost"); |
| 31 | 34 | ||
| 32 | SKIP: { | 35 | my $ntp_okmatch1 = '/^NTP\sOK:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/'; |
| 33 | skip "No NTP server defined", 1 unless $ntp_service; | 36 | my $ntp_warnmatch1 = '/^NTP\sWARNING:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/'; |
| 37 | my $ntp_critmatch1 = '/^NTP\sCRITICAL:\sOffset\s-?[0-9]+(\.[0-9]+)?(e-[0-9]{2})?\ssecs/'; | ||
| 38 | 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}/'; | ||
| 39 | 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}/'; | ||
| 40 | 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}/'; | ||
| 41 | my $ntp_noresponse = '/^(CRITICAL - Socket timeout after 3 seconds)|(NTP CRITICAL: No response from NTP server)$/'; | ||
| 42 | my $ntp_nosuchhost = '/^check_ntp.*: Invalid hostname/address - ' . $hostname_invalid . '/'; | ||
| 43 | |||
| 44 | |||
| 45 | foreach my $plugin (@PLUGINS1) { | ||
| 46 | SKIP: { | ||
| 47 | skip "No NTP server defined", 1 unless $ntp_service; | ||
| 48 | $res = NPTest->testCmd( | ||
| 49 | "./$plugin -H $ntp_service -w 1000 -c 2000" | ||
| 50 | ); | ||
| 51 | cmp_ok( $res->return_code, '==', 0, "$plugin: Good NTP result (simple check)" ); | ||
| 52 | like( $res->output, $ntp_okmatch1, "$plugin: Output match OK (simple check)" ); | ||
| 53 | |||
| 54 | $res = NPTest->testCmd( | ||
| 55 | "./$plugin -H $ntp_service -w 1000: -c 2000" | ||
| 56 | ); | ||
| 57 | cmp_ok( $res->return_code, '==', 1, "$plugin: Warning NTP result (simple check)" ); | ||
| 58 | like( $res->output, $ntp_warnmatch1, "$plugin: Output match WARNING (simple check)" ); | ||
| 59 | |||
| 60 | $res = NPTest->testCmd( | ||
| 61 | "./$plugin -H $ntp_service -w 1000 -c 2000:" | ||
| 62 | ); | ||
| 63 | cmp_ok( $res->return_code, '==', 2, "$plugin: Critical NTP result (simple check)" ); | ||
| 64 | like( $res->output, $ntp_critmatch1, "$plugin: Output match CRITICAL (simple check)" ); | ||
| 65 | } | ||
| 66 | |||
| 67 | SKIP: { | ||
| 68 | skip "No bad NTP server defined", 1 unless $no_ntp_service; | ||
| 69 | $res = NPTest->testCmd( | ||
| 70 | "./$plugin -H $no_ntp_service -t 3" | ||
| 71 | ); | ||
| 72 | cmp_ok( $res->return_code, '==', 2, "$plugin: No NTP service" ); | ||
| 73 | like( $res->output, $ntp_noresponse, "$plugin: Output match no NTP service" ); | ||
| 74 | } | ||
| 75 | |||
| 34 | $res = NPTest->testCmd( | 76 | $res = NPTest->testCmd( |
| 35 | "./check_ntp -H $ntp_service" | 77 | "./$plugin -H $host_nonresponsive -t 3" |
| 36 | ); | 78 | ); |
| 37 | cmp_ok( $res->return_code, '==', 0, "Got good NTP result"); | 79 | cmp_ok( $res->return_code, '==', 2, "$plugin: Server not responding" ); |
| 38 | } | 80 | like( $res->output, $ntp_noresponse, "$plugin: Output match non-responsive" ); |
| 39 | 81 | ||
| 40 | SKIP: { | ||
| 41 | skip "No bad NTP server defined", 1 unless $no_ntp_service; | ||
| 42 | $res = NPTest->testCmd( | 82 | $res = NPTest->testCmd( |
| 43 | "./check_ntp -H $no_ntp_service" | 83 | "./$plugin -H $hostname_invalid" |
| 44 | ); | 84 | ); |
| 45 | cmp_ok( $res->return_code, '==', 2, "Got bad NTP result"); | 85 | cmp_ok( $res->return_code, '==', 3, "$plugin: Invalid hostname/address" ); |
| 86 | like( $res->output, $ntp_nosuchhost, "$plugin: Output match invalid hostname/address" ); | ||
| 87 | |||
| 46 | } | 88 | } |
| 47 | 89 | ||
| 48 | $res = NPTest->testCmd( | 90 | foreach my $plugin (@PLUGINS2) { |
| 49 | "./check_ntp -H $host_nonresponsive" | 91 | SKIP: { |
| 50 | ); | 92 | skip "No NTP server defined", 1 unless $ntp_service; |
| 51 | cmp_ok( $res->return_code, '==', 2, "Got critical if server not responding"); | 93 | $res = NPTest->testCmd( |
| 94 | "./$plugin -H $ntp_service -w 1000 -c 2000 -W 20 -C 21 -j 100000 -k 200000" | ||
| 95 | ); | ||
| 96 | cmp_ok( $res->return_code, '==', 0, "$plugin: Good NTP result with jitter and stratum check" ); | ||
| 97 | like( $res->output, $ntp_okmatch2, "$plugin: Output match OK with jitter and stratum" ); | ||
| 52 | 98 | ||
| 53 | $res = NPTest->testCmd( | 99 | $res = NPTest->testCmd( |
| 54 | "./check_ntp -H $hostname_invalid" | 100 | "./$plugin -H $ntp_service -w 1000 -c 2000 -W ~:-1 -C 21 -j 100000 -k 200000" |
| 55 | ); | 101 | ); |
| 56 | cmp_ok( $res->return_code, '==', 3, "Got critical if server hostname invalid"); | 102 | cmp_ok( $res->return_code, '==', 1, "$plugin: Warning NTP result with jitter and stratum check" ); |
| 103 | like( $res->output, $ntp_warnmatch2, "$plugin: Output match WARNING with jitter and stratum" ); | ||
| 57 | 104 | ||
| 105 | $res = NPTest->testCmd( | ||
| 106 | "./$plugin -H $ntp_service -w 1000 -c 2000 -W 20 -C 21 -j 100000 -k ~:-1" | ||
| 107 | ); | ||
| 108 | cmp_ok( $res->return_code, '==', 2, "$plugin: Critical NTP result with jitter and stratum check" ); | ||
| 109 | like( $res->output, $ntp_critmatch2, "$plugin: Output match CRITICAL with jitter and stratum" ); | ||
| 110 | } | ||
| 111 | } | ||
