summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rw-r--r--t/Nagios-Plugin-Performance.t9
-rw-r--r--t/Nagios-Plugin-Range.t153
-rw-r--r--t/Nagios-Plugin-Threshold.t150
-rw-r--r--t/Nagios-Plugin.t32
4 files changed, 320 insertions, 24 deletions
diff --git a/t/Nagios-Plugin-Performance.t b/t/Nagios-Plugin-Performance.t
index b10a988..0f52de1 100644
--- a/t/Nagios-Plugin-Performance.t
+++ b/t/Nagios-Plugin-Performance.t
@@ -3,6 +3,8 @@ use strict;
3use Test::More tests => 49; 3use Test::More tests => 49;
4BEGIN { use_ok('Nagios::Plugin::Performance') }; 4BEGIN { use_ok('Nagios::Plugin::Performance') };
5 5
6diag "\nusing Nagios::Plugin::Performance revision ". $Nagios::Plugin::Performance::VERSION . "\n";
7
6use Nagios::Plugin::Base; 8use Nagios::Plugin::Base;
7Nagios::Plugin::Base->exit_on_die(0); 9Nagios::Plugin::Base->exit_on_die(0);
8 10
@@ -27,13 +29,16 @@ cmp_ok( $p[1]->threshold->critical->end, "==", 9448, "crit okay");
27ok( ! @p, "Errors correctly"); 29ok( ! @p, "Errors correctly");
28ok( ! Nagios::Plugin::Performance->parse_perfstring(""), "Errors on empty string"); 30ok( ! Nagios::Plugin::Performance->parse_perfstring(""), "Errors on empty string");
29 31
32
30@p = Nagios::Plugin::Performance->parse_perfstring( 33@p = Nagios::Plugin::Performance->parse_perfstring(
31 "time=0.001229s;0.000000;0.000000;0.000000;10.000000"); 34 "time=0.001229s;0.000000;0.000000;0.000000;10.000000");
32cmp_ok( $p[0]->label, "eq", "time", "label okay"); 35cmp_ok( $p[0]->label, "eq", "time", "label okay");
33cmp_ok( $p[0]->value, "==", 0.001229, "value okay"); 36cmp_ok( $p[0]->value, "==", 0.001229, "value okay");
34cmp_ok( $p[0]->uom, "eq", "s", "uom okay"); 37cmp_ok( $p[0]->uom, "eq", "s", "uom okay");
35cmp_ok( $p[0]->threshold->warning, "eq", "0", "warn okay"); 38 ok( $p[0]->threshold->warning->is_set, "warn okay");
36cmp_ok( $p[0]->threshold->critical, "eq", "0", "crit okay"); 39 ok( $p[0]->threshold->critical->is_set, "crit okay");
40
41
37 42
38@p = Nagios::Plugin::Performance->parse_perfstring( 43@p = Nagios::Plugin::Performance->parse_perfstring(
39 "load1=0.000;5.000;9.000;0; load5=0.000;5.000;9.000;0; load15=0.000;5.000;9.000;0;"); 44 "load1=0.000;5.000;9.000;0; load5=0.000;5.000;9.000;0; load15=0.000;5.000;9.000;0;");
diff --git a/t/Nagios-Plugin-Range.t b/t/Nagios-Plugin-Range.t
index 13667de..f01518d 100644
--- a/t/Nagios-Plugin-Range.t
+++ b/t/Nagios-Plugin-Range.t
@@ -1,10 +1,32 @@
1 1
2use strict; 2use strict;
3use Test::More tests => 60; 3use Test::More qw(no_plan); #tests => 123;
4
4BEGIN { use_ok('Nagios::Plugin::Range') }; 5BEGIN { use_ok('Nagios::Plugin::Range') };
5 6
7diag "\nusing Nagios::Plugin::Range revision ". $Nagios::Plugin::Range::VERSION . "\n";
8
9my $r;
10
11diag "'garbage in' checks -- you should see 7 invalid range definition warnings here:";
12
13foreach (qw(
14 :
15 1:~
16 foo
17 1-10
18 10:~
19 1-10:2.4
20
21), '1,10' # avoid warning about using , inside qw()
22) {
23 $r =Nagios::Plugin::Range->parse_range_string($_);
24 is $r, undef, "'$_' should not be a valid range" ;
25}
26
6 27
7my $r = Nagios::Plugin::Range->parse_range_string("6"); 28diag "range: 0..6 inclusive" if $ENV{TEST_VERBOSE};
29$r = Nagios::Plugin::Range->parse_range_string("6");
8isa_ok( $r, "Nagios::Plugin::Range"); 30isa_ok( $r, "Nagios::Plugin::Range");
9ok( defined $r, "'6' is valid range"); 31ok( defined $r, "'6' is valid range");
10cmp_ok( $r->start, '==', 0, "Start correct"); 32cmp_ok( $r->start, '==', 0, "Start correct");
@@ -13,6 +35,27 @@ cmp_ok( $r->end, '==', 6, "End correct");
13cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity"); 35cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity");
14cmp_ok( $r, 'eq', "6", "Stringification back to original"); 36cmp_ok( $r, 'eq', "6", "Stringification back to original");
15 37
38my $expected = {
39 -1 => 1, # 1 means it raises an alert because it's OUTSIDE the range
40 0 => 0, # 0 means it's inside the range (no alert)
41 4 => 0,
42 6 => 0,
43 6.1 => 1,
44 79.999999 => 1,
45};
46
47sub test_expected {
48 my $r = shift;
49 my $expected = shift;
50 foreach (sort {$a<=>$b} keys %$expected) {
51 is $r->check_range($_), $expected->{$_},
52 " $_ should " . ($expected->{$_} ? 'not ' : '') . "be in the range (line ".(caller)[2].")";
53 }
54}
55
56test_expected( $r, $expected );
57
58diag "range : -7..23, inclusive" if $ENV{TEST_VERBOSE};
16$r = Nagios::Plugin::Range->parse_range_string("-7:23"); 59$r = Nagios::Plugin::Range->parse_range_string("-7:23");
17ok( defined $r, "'-7:23' is valid range"); 60ok( defined $r, "'-7:23' is valid range");
18cmp_ok( $r->start, '==', -7, "Start correct"); 61cmp_ok( $r->start, '==', -7, "Start correct");
@@ -21,6 +64,20 @@ cmp_ok( $r->end, '==', 23, "End correct");
21cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity"); 64cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity");
22cmp_ok( $r, 'eq', "-7:23", "Stringification back to original"); 65cmp_ok( $r, 'eq', "-7:23", "Stringification back to original");
23 66
67$expected = {
68 -23 => 1,
69 -7 => 0,
70 -1 => 0,
71 0 => 0,
72 4 => 0,
73 23 => 0,
74 23.1 => 1,
75 79.999999 => 1,
76};
77test_expected( $r, $expected );
78
79
80diag "range : 0..5.75, inclusive" if $ENV{TEST_VERBOSE};
24$r = Nagios::Plugin::Range->parse_range_string(":5.75"); 81$r = Nagios::Plugin::Range->parse_range_string(":5.75");
25ok( defined $r, "':5.75' is valid range"); 82ok( defined $r, "':5.75' is valid range");
26cmp_ok( $r->start, '==', 0, "Start correct"); 83cmp_ok( $r->start, '==', 0, "Start correct");
@@ -28,21 +85,81 @@ cmp_ok( $r->start_infinity, '==', 0, "Not using negative infinity");
28cmp_ok( $r->end, '==', 5.75, "End correct"); 85cmp_ok( $r->end, '==', 5.75, "End correct");
29cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity"); 86cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity");
30cmp_ok( $r, 'eq', "5.75", "Stringification to simplification"); 87cmp_ok( $r, 'eq', "5.75", "Stringification to simplification");
88$expected = {
89 -1 => 1,
90 0 => 0,
91 4 => 0,
92 5.75 => 0,
93 5.7501 => 1,
94 6 => 1,
95 6.1 => 1,
96 79.999999 => 1,
97};
98test_expected( $r, $expected );
31 99
100
101
102diag "range : negative infinity .. -95.99, inclusive" if $ENV{TEST_VERBOSE};
32$r = Nagios::Plugin::Range->parse_range_string("~:-95.99"); 103$r = Nagios::Plugin::Range->parse_range_string("~:-95.99");
33ok( defined $r, "'~:-95.99' is valid range"); 104ok( defined $r, "'~:-95.99' is valid range");
34cmp_ok( $r->start_infinity, '==', 1, "Using negative infinity"); 105cmp_ok( $r->start_infinity, '==', 1, "Using negative infinity");
35cmp_ok( $r->end, '==', -95.99, "End correct"); 106cmp_ok( $r->end, '==', -95.99, "End correct");
36cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity"); 107cmp_ok( $r->end_infinity, '==', 0, "Not using positive infinity");
37cmp_ok( $r, 'eq', "~:-95.99", "Stringification back to original"); 108cmp_ok( $r, 'eq', "~:-95.99", "Stringification back to original");
109$expected = {
110 -1001341 => 0,
111 -96 => 0,
112 -95.999 => 0,
113 -95.99 => 0,
114 -95.989 => 1,
115 -95 => 1,
116 0 => 1,
117 5.7501 => 1,
118 79.999999 => 1,
119};
120test_expected( $r, $expected );
121
122diag "range 10..infinity , inclusive" if $ENV{TEST_VERBOSE};
123test_expected( $r, $expected );
124$r = Nagios::Plugin::Range->parse_range_string("10:");
125ok( defined $r, "'10:' is valid range");
126cmp_ok( $r->start, '==', 10, "Start correct");
127cmp_ok( $r->start_infinity, '==', 0, "Not using negative infinity");
128cmp_ok( $r->end_infinity, '==', 1, "Using positive infinity");
129cmp_ok( $r, 'eq', "10:", "Stringification back to original");
130$expected = {
131 -95.999 => 1,
132 -1 => 1,
133 0 => 1,
134 9.91 => 1,
135 10 => 0,
136 11.1 => 0,
137 123456789012346 => 0,
138};
139test_expected( $r, $expected );
140
38 141
142
143diag "range 123456789012345..infinity , inclusive" if $ENV{TEST_VERBOSE};
144test_expected( $r, $expected );
39$r = Nagios::Plugin::Range->parse_range_string("123456789012345:"); 145$r = Nagios::Plugin::Range->parse_range_string("123456789012345:");
40ok( defined $r, "'123456789012345:' is valid range"); 146ok( defined $r, "'123456789012345:' is valid range");
41cmp_ok( $r->start, '==', 123456789012345, "Start correct"); 147cmp_ok( $r->start, '==', 123456789012345, "Start correct");
42cmp_ok( $r->start_infinity, '==', 0, "Not using negative infinity"); 148cmp_ok( $r->start_infinity, '==', 0, "Not using negative infinity");
43cmp_ok( $r->end_infinity, '==', 1, "Using positive infinity"); 149cmp_ok( $r->end_infinity, '==', 1, "Using positive infinity");
44cmp_ok( $r, 'eq', "123456789012345:", "Stringification back to original"); 150cmp_ok( $r, 'eq', "123456789012345:", "Stringification back to original");
151$expected = {
152 -95.999 => 1,
153 -1 => 1,
154 0 => 1,
155 123456789012344.91 => 1,
156 123456789012345 => 0,
157 123456789012346 => 0,
158};
159test_expected( $r, $expected );
160
45 161
162diag "range: <= zero " if $ENV{TEST_VERBOSE};
46$r = Nagios::Plugin::Range->parse_range_string("~:0"); 163$r = Nagios::Plugin::Range->parse_range_string("~:0");
47ok( defined $r, "'~:0' is valid range"); 164ok( defined $r, "'~:0' is valid range");
48cmp_ok( $r->start_infinity, '==', 1, "Using negative infinity"); 165cmp_ok( $r->start_infinity, '==', 1, "Using negative infinity");
@@ -53,7 +170,17 @@ cmp_ok( $r, 'eq', "~:0", "Stringification back to original");
53ok( $r->check_range(0.5) == 1, "0.5 - alert"); 170ok( $r->check_range(0.5) == 1, "0.5 - alert");
54ok( $r->check_range(-10) == 0, "-10 - no alert"); 171ok( $r->check_range(-10) == 0, "-10 - no alert");
55ok( $r->check_range(0) == 0, "0 - no alert"); 172ok( $r->check_range(0) == 0, "0 - no alert");
173$expected = {
174 -123456789012344.91 => 0,
175 -1 => 0,
176 0 => 0,
177 .001 => 1,
178 123456789012345 => 1,
179};
180test_expected( $r, $expected );
181
56 182
183diag "range: OUTSIDE 0..657.8210567" if $ENV{TEST_VERBOSE};
57$r = Nagios::Plugin::Range->parse_range_string('@0:657.8210567'); 184$r = Nagios::Plugin::Range->parse_range_string('@0:657.8210567');
58ok( defined $r, '"@0:657.8210567" is a valid range'); 185ok( defined $r, '"@0:657.8210567" is a valid range');
59cmp_ok( $r->start, '==', 0, "Start correct"); 186cmp_ok( $r->start, '==', 0, "Start correct");
@@ -66,7 +193,19 @@ ok( $r->check_range(32.88) == 1, "32.88 - alert");
66ok( $r->check_range(-2) == 0, "-2 - no alert"); 193ok( $r->check_range(-2) == 0, "-2 - no alert");
67ok( $r->check_range(657.8210567) == 1, "657.8210567 - alert"); 194ok( $r->check_range(657.8210567) == 1, "657.8210567 - alert");
68ok( $r->check_range(0) == 1, "0 - alert"); 195ok( $r->check_range(0) == 1, "0 - alert");
196$expected = {
197 -134151 => 0,
198 -1 => 0,
199 0 => 1,
200 .001 => 1,
201 657.8210567 => 1,
202 657.9 => 0,
203 123456789012345 => 0,
204};
205test_expected( $r, $expected );
69 206
207
208diag "range: 1..1 inclusive (equals one)" if $ENV{TEST_VERBOSE};
70$r = Nagios::Plugin::Range->parse_range_string('1:1'); 209$r = Nagios::Plugin::Range->parse_range_string('1:1');
71ok( defined $r, '"1:1" is a valid range'); 210ok( defined $r, '"1:1" is a valid range');
72cmp_ok( $r->start, '==', 1, "Start correct"); 211cmp_ok( $r->start, '==', 1, "Start correct");
@@ -77,6 +216,16 @@ cmp_ok( $r, 'eq', "1:1", "Stringification to simplified version");
77ok( $r->check_range(0.5) == 1, "0.5 - alert"); 216ok( $r->check_range(0.5) == 1, "0.5 - alert");
78ok( $r->check_range(1) == 0, "1 - no alert"); 217ok( $r->check_range(1) == 0, "1 - no alert");
79ok( $r->check_range(5.2) == 1, "5.2 - alert"); 218ok( $r->check_range(5.2) == 1, "5.2 - alert");
219$expected = {
220 -1 => 1,
221 0 => 1,
222 .5 => 1,
223 1 => 0,
224 1.001 => 1,
225 5.2 => 1,
226};
227test_expected( $r, $expected );
228
80 229
81$r = Nagios::Plugin::Range->parse_range_string('2:1'); 230$r = Nagios::Plugin::Range->parse_range_string('2:1');
82ok( ! defined $r, '"2:1" is rejected'); 231ok( ! defined $r, '"2:1" is rejected');
diff --git a/t/Nagios-Plugin-Threshold.t b/t/Nagios-Plugin-Threshold.t
index 97d4fcc..bb8b578 100644
--- a/t/Nagios-Plugin-Threshold.t
+++ b/t/Nagios-Plugin-Threshold.t
@@ -1,32 +1,162 @@
1 1
2use strict; 2use strict;
3use Test::More tests => 18; 3use Test::More tests => 71;
4#use Test::Exception; # broken for now so we don't need this.
4BEGIN { use_ok('Nagios::Plugin::Threshold'); use_ok('Nagios::Plugin::Base') }; 5BEGIN { use_ok('Nagios::Plugin::Threshold'); use_ok('Nagios::Plugin::Base') };
5 6
7diag "\nusing Nagios::Plugin::Threshold revision ". $Nagios::Plugin::Threshold::VERSION . "\n";
8
6Nagios::Plugin::Base->exit_on_die(0); 9Nagios::Plugin::Base->exit_on_die(0);
7Nagios::Plugin::Base->print_on_die(0); 10Nagios::Plugin::Base->print_on_die(0);
11my %STATUS_TEXT = reverse %ERRORS;
8 12
13diag "threshold: critical if > 80" if $ENV{TEST_VERBOSE};
9my $t = Nagios::Plugin::Threshold->set_thresholds(critical => "80"); 14my $t = Nagios::Plugin::Threshold->set_thresholds(critical => "80");
10ok( defined $t, "Threshold ('', '80') set"); 15ok( defined $t, "Threshold ('', '80') set");
11ok( ! $t->warning->is_set, "Warning not set"); 16ok( ! $t->warning->is_set, "Warning not set");
12cmp_ok( $t->critical->end, '==', 80, "Critical set correctly"); 17cmp_ok( $t->critical->start, '==', 0, "Critical strat set correctly");
18cmp_ok( $t->critical->end, '==', 80, "Critical end set correctly");
19ok ! $t->critical->end_infinity, "not forever";
20
21my $expected = { qw(
22 -1 CRITICAL
23 4 OK
24 79.999999 OK
25 80 OK
26 80.1 CRITICAL
27 102321 CRITICAL
28) };
29
30sub test_expected_statuses {
31 my $t = shift;
32 my $expected = shift;
33 my $debug = shift;
13 34
35 foreach (sort {$a<=>$b} keys %$expected) {
36 is $STATUS_TEXT{$t->get_status($_)}, $expected->{$_}, " $_ - $expected->{$_}";
37 if ($debug) {
38 diag "val = $_; critical check = ".$t->critical->check_range($_).
39 "; warning check = ".$t->warning->check_range($_);
40 }
41 }
42 use Data::Dumper;
43 diag "thresh dump: ". Dumper $t if $debug;
44}
45test_expected_statuses( $t, $expected );
46
47diag "threshold: warn if less than 5 or more than 33." if $ENV{TEST_VERBOSE};
14$t = Nagios::Plugin::Threshold->set_thresholds(warning => "5:33", critical => ""); 48$t = Nagios::Plugin::Threshold->set_thresholds(warning => "5:33", critical => "");
15ok( defined $t, "Threshold ('5:33', '') set"); 49ok( defined $t, "Threshold ('5:33', '') set");
16cmp_ok( $t->warning->start, '==', 5, "Warning start set"); 50cmp_ok( $t->warning->start, '==', 5, "Warning start set");
17cmp_ok( $t->warning->end, '==', 33, "Warning end set"); 51cmp_ok( $t->warning->end, '==', 33, "Warning end set");
18ok( ! $t->critical->is_set, "Critical not set"); 52ok( ! $t->critical->is_set, "Critical not set");
19 53
20$t = Nagios::Plugin::Threshold->set_thresholds(warning => "30", critical => "60"); 54$expected = { qw(
21ok( defined $t, "Threshold ('30', '60') set"); 55 -1 WARNING
56 4 WARNING
57 4.999999 WARNING
58 5 OK
59 14.21 OK
60 33 OK
61 33.01 WARNING
62 10231 WARNING
63) };
64test_expected_statuses( $t, $expected );
65
66diag "threshold: warn if more than 30; critical if > 60" if $ENV{TEST_VERBOSE};
67$t = Nagios::Plugin::Threshold->set_thresholds(warning => "~:30", critical => "~:60");
68ok( defined $t, "Threshold ('~:30', '~:60') set");
22cmp_ok( $t->warning->end, '==', 30, "Warning end set"); 69cmp_ok( $t->warning->end, '==', 30, "Warning end set");
23cmp_ok( $t->critical->end, '==',60, "Critical end set"); 70cmp_ok( $t->critical->end, '==',60, "Critical end set");
24cmp_ok( $t->get_status(15.3), '==', $ERRORS{OK}, "15.3 - ok"); 71ok $t->critical->start_infinity, "Critical starts at negative infinity";
25cmp_ok( $t->get_status(30.0001), '==', $ERRORS{WARNING}, "30.0001 - warning");
26cmp_ok( $t->get_status(69), '==', $ERRORS{CRITICAL}, "69 - critical");
27 72
28$t = Nagios::Plugin::Threshold->set_thresholds(warning => "total", critical => "rubbish"); 73$expected = { qw(
29ok( defined $t, "Threshold object created although ..."); 74 -1 OK
75 4 OK
76 29.999999 OK
77 30 OK
78 30.1 WARNING
79 50.90 WARNING
80 59.9 WARNING
81 60 WARNING
82 60.00001 CRITICAL
83 10231 CRITICAL
84) };
85test_expected_statuses( $t, $expected );
86
87
88# "I'm going to die homeless, penniless, and 30 pounds overweight."
89# "...and that's...okay."
90
91# TODO: figure out why this doesn't work and fix the test.
92goto SKIP_DEATH;
93diag "threshold: test pure crap for arguments - default to OK." if $ENV{TEST_VERBOSE};
94diag "you should see one invalid range definition warning and an UNKNOWN line here:\n";
95Nagios::Plugin::Base->print_on_die(1);
96Nagios::Plugin::Base->exit_on_die(1);
97
98dies_ok( sub {
99 $t = Nagios::Plugin::Threshold->set_thresholds(
100 warning => "total",
101 critical => "rubbish"
102 )
103 }, "bad thresholds cause death"
104);
105Nagios::Plugin::Base->print_on_die(0);
106Nagios::Plugin::Base->exit_on_die(0);
107SKIP_DEATH:
108
109
110diag "threshold: critical if > 25 " if $ENV{TEST_VERBOSE};
111$t = Nagios::Plugin::Threshold->set_thresholds( critical => "~:25" );
112ok( defined $t, "Threshold ('', '~:25') set (".$t->critical->stringify().")" );
30ok( ! $t->warning->is_set, "Warning not set"); 113ok( ! $t->warning->is_set, "Warning not set");
31ok( ! $t->critical->is_set, "Critical not set"); 114cmp_ok( $t->critical->end, '==',25, "Critical end set");
115ok $t->critical->start_infinity, "Critical starts at negative infinity";
116
117$expected = { qw(
118 -1 OK
119 4 OK
120 10 OK
121 14.21 OK
122 25 OK
123 25.01 CRITICAL
124 31001 CRITICAL
125) };
126test_expected_statuses( $t, $expected);
127
128diag "threshold: warn if OUTSIDE {10..25} , critical if > 25 " if $ENV{TEST_VERBOSE};
129$t = Nagios::Plugin::Threshold->set_thresholds(warning => "10:25", critical => "~:25");
130ok( defined $t, "Threshold ('10:25', '~:25') set");
131cmp_ok( $t->warning->start, '==', 10, "Warning start set");
132cmp_ok( $t->warning->end, '==', 25, "Warning end set");
133cmp_ok( $t->critical->end, '==', 25, "Critical end set");
134
135$expected = { qw(
136 -1 WARNING
137 4 WARNING
138 9.999999 WARNING
139 10 OK
140 14.21 OK
141 25 OK
142 25.01 CRITICAL
143 31001 CRITICAL
144) };
145test_expected_statuses( $t, $expected );
146
147
148diag "warn if INSIDE {10..25} , critical if < 10 " if $ENV{TEST_VERBOSE};
149$t = Nagios::Plugin::Threshold->set_thresholds(warning => "\@10:25", critical => "10:");
150$expected = { qw(
151 -1 CRITICAL
152 4 CRITICAL
153 9.999999 CRITICAL
154 10 WARNING
155 14.21 WARNING
156 25 WARNING
157 25.01 OK
158 31001 OK
159) };
160test_expected_statuses( $t, $expected );
32 161
162ok 1, "sweet, made it to the end.";
diff --git a/t/Nagios-Plugin.t b/t/Nagios-Plugin.t
index 38e792d..ed25aca 100644
--- a/t/Nagios-Plugin.t
+++ b/t/Nagios-Plugin.t
@@ -1,18 +1,22 @@
1 1
2use strict; 2use strict;
3use Test::More tests => 5; 3use Test::More tests => 9;
4
4BEGIN { use_ok('Nagios::Plugin') }; 5BEGIN { use_ok('Nagios::Plugin') };
5 6
6use Nagios::Plugin::Base; 7use Nagios::Plugin::Base;
7Nagios::Plugin::Base->exit_on_die(0); 8Nagios::Plugin::Base->exit_on_die(0);
8Nagios::Plugin::Base->print_on_die(0); 9Nagios::Plugin::Base->print_on_die(0);
9 10
11diag "\nusing Nagios::Plugin revision ". $Nagios::Plugin::VERSION . "\n";
12
10my $p = Nagios::Plugin->new; 13my $p = Nagios::Plugin->new;
11isa_ok( $p, "Nagios::Plugin"); 14isa_ok( $p, "Nagios::Plugin");
12 15
13$p->shortname("PAGESIZE"); 16$p->shortname("PAGESIZE");
14 17
15my $t = $p->set_thresholds( warning => "10:25", critical => "25:" ); 18diag "warn if < 10, critical if > 25 " if $ENV{TEST_VERBOSE};
19my $t = $p->set_thresholds( warning => "10:25", critical => "~:25" );
16 20
17$p->add_perfdata( 21$p->add_perfdata(
18 label => "size", 22 label => "size",
@@ -21,12 +25,20 @@ $p->add_perfdata(
21 threshold => $t, 25 threshold => $t,
22 ); 26 );
23 27
24cmp_ok( $p->all_perfoutput, 'eq', "size=1kB;10:25;25:", "Perfdata correct"); 28cmp_ok( $p->all_perfoutput, 'eq', "size=1kB;10:25;~:25", "Perfdata correct");
25 29
26my $o = $p->die( return_code => $t->get_status(1), message => "page size at http://... was 1kB" ); 30my $expected = {qw(
27cmp_ok( $o, "eq", 'PAGESIZE CRITICAL page size at http://... was 1kB | size=1kB;10:25;25:', "Output okay"); 31 -1 WARNING
28 32 1 WARNING
29cmp_ok( $p->die( return_code => $t->get_status(30), message => "page size at http://... was 30kB" ), 33 20 OK
30 "eq", 'PAGESIZE WARNING page size at http://... was 30kB | size=1kB;10:25;25:', "Output okay"); 34 25 OK
31 35 26 CRITICAL
36 30 CRITICAL
37 )};
38
39foreach (sort {$a<=>$b} keys %$expected) {
40 like $p->die( return_code => $t->get_status($_), message => "page size at http://... was ${_}kB" ),
41 qr/$expected->{$_}/,
42 "Output okay. $_ = $expected->{$_}" ;
43}
32 44