diff options
author | Ton Voon <tonvoon@users.sourceforge.net> | 2006-03-23 12:01:21 (GMT) |
---|---|---|
committer | Ton Voon <tonvoon@users.sourceforge.net> | 2006-03-23 12:01:21 (GMT) |
commit | 61cd9f525aa236250b6768e6db2977c836c57d96 (patch) | |
tree | 107e0b4fcd7bb3c42fcc1b7c51c4e7d83c726f38 | |
parent | 3ebbe5c55bfbe0316652abc5e8466e78bc89eb7a (diff) | |
download | monitoring-plugins-61cd9f525aa236250b6768e6db2977c836c57d96.tar.gz |
Incorrect output when checking non-existent disk (John Rouillard - 1326050)
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1349 f882894a-f735-0410-b71e-b25c423dba1c
-rw-r--r-- | NPTest.pm | 7 | ||||
-rw-r--r-- | plugins/check_disk.c | 4 | ||||
-rw-r--r-- | plugins/t/check_disk.t | 18 |
3 files changed, 25 insertions, 4 deletions
@@ -596,6 +596,13 @@ sub output { | |||
596 | } | 596 | } |
597 | } | 597 | } |
598 | 598 | ||
599 | sub perf_output { | ||
600 | my $self = shift; | ||
601 | $_ = $self->{output}; | ||
602 | s/[^|]*\|//; | ||
603 | return $_; | ||
604 | } | ||
605 | |||
599 | sub testCmd { | 606 | sub testCmd { |
600 | my $class = shift; | 607 | my $class = shift; |
601 | my $command = shift or die "No command passed to testCmd"; | 608 | my $command = shift or die "No command passed to testCmd"; |
diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 0ee6dc8..fa913ac 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c | |||
@@ -275,8 +275,6 @@ main (int argc, char **argv) | |||
275 | 275 | ||
276 | } | 276 | } |
277 | 277 | ||
278 | asprintf (&output, "%s|%s", output, perf); | ||
279 | |||
280 | if (verbose > 2) | 278 | if (verbose > 2) |
281 | asprintf (&output, "%s%s", output, details); | 279 | asprintf (&output, "%s%s", output, details); |
282 | 280 | ||
@@ -290,7 +288,7 @@ main (int argc, char **argv) | |||
290 | temp_list = temp_list->name_next; | 288 | temp_list = temp_list->name_next; |
291 | } | 289 | } |
292 | 290 | ||
293 | printf ("DISK %s%s\n", state_text (result), output); | 291 | printf ("DISK %s%s|%s\n", state_text (result), output, perf); |
294 | return result; | 292 | return result; |
295 | } | 293 | } |
296 | 294 | ||
diff --git a/plugins/t/check_disk.t b/plugins/t/check_disk.t index 385865f..90ccc26 100644 --- a/plugins/t/check_disk.t +++ b/plugins/t/check_disk.t | |||
@@ -22,7 +22,7 @@ my $mountpoint2_valid = getTestParameter( "NP_MOUNTPOINT2_VALID", "Path to anoth | |||
22 | if ($mountpoint_valid eq "" or $mountpoint2_valid eq "") { | 22 | if ($mountpoint_valid eq "" or $mountpoint2_valid eq "") { |
23 | plan skip_all => "Need 2 mountpoints to test"; | 23 | plan skip_all => "Need 2 mountpoints to test"; |
24 | } else { | 24 | } else { |
25 | plan tests => 26; | 25 | plan tests => 31; |
26 | } | 26 | } |
27 | 27 | ||
28 | $result = NPTest->testCmd( | 28 | $result = NPTest->testCmd( |
@@ -157,3 +157,19 @@ TODO: { | |||
157 | $result = NPTest->testCmd( "./check_disk 200 0 $mountpoint_valid" ); | 157 | $result = NPTest->testCmd( "./check_disk 200 0 $mountpoint_valid" ); |
158 | cmp_ok( $result->return_code, '==', 3, "Old syntax: Error with values outside percent range" ); | 158 | cmp_ok( $result->return_code, '==', 3, "Old syntax: Error with values outside percent range" ); |
159 | 159 | ||
160 | TODO: { | ||
161 | local $TODO = "Check existence of each filesystem as a directory"; | ||
162 | $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p /bob" ); | ||
163 | cmp_ok( $result->return_code, '==', 2, "Checking /bob - return error because /bob does not exist" ); | ||
164 | } | ||
165 | |||
166 | $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p /" ); | ||
167 | my $root_output = $result->output; | ||
168 | |||
169 | $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p /etc" ); | ||
170 | cmp_ok( $result->return_code, '==', 0, "Checking /etc - should return info for /" ); | ||
171 | cmp_ok( $result->output, 'eq', $root_output, "check_disk /etc gives same as check_disk /"); | ||
172 | |||
173 | $result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p / -p /bob" ); | ||
174 | cmp_ok( $result->return_code, '==', 2, "Checking / and /bob gives critical"); | ||
175 | unlike( $result->perf_output, 'm#/bob#', "perf data does not have /bob in it"); | ||