summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTon Voon <tonvoon@users.sourceforge.net>2006-03-23 12:01:21 +0000
committerTon Voon <tonvoon@users.sourceforge.net>2006-03-23 12:01:21 +0000
commit61cd9f525aa236250b6768e6db2977c836c57d96 (patch)
tree107e0b4fcd7bb3c42fcc1b7c51c4e7d83c726f38
parent3ebbe5c55bfbe0316652abc5e8466e78bc89eb7a (diff)
downloadmonitoring-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.pm7
-rw-r--r--plugins/check_disk.c4
-rw-r--r--plugins/t/check_disk.t18
3 files changed, 25 insertions, 4 deletions
diff --git a/NPTest.pm b/NPTest.pm
index f1ff801e..106e8f12 100644
--- a/NPTest.pm
+++ b/NPTest.pm
@@ -596,6 +596,13 @@ sub output {
596 } 596 }
597} 597}
598 598
599sub perf_output {
600 my $self = shift;
601 $_ = $self->{output};
602 s/[^|]*\|//;
603 return $_;
604}
605
599sub testCmd { 606sub 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 0ee6dc87..fa913ac7 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 385865fe..90ccc26a 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
22if ($mountpoint_valid eq "" or $mountpoint2_valid eq "") { 22if ($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" );
158cmp_ok( $result->return_code, '==', 3, "Old syntax: Error with values outside percent range" ); 158cmp_ok( $result->return_code, '==', 3, "Old syntax: Error with values outside percent range" );
159 159
160TODO: {
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 /" );
167my $root_output = $result->output;
168
169$result = NPTest->testCmd( "./check_disk -w 0% -c 0% -p /etc" );
170cmp_ok( $result->return_code, '==', 0, "Checking /etc - should return info for /" );
171cmp_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" );
174cmp_ok( $result->return_code, '==', 2, "Checking / and /bob gives critical");
175unlike( $result->perf_output, 'm#/bob#', "perf data does not have /bob in it");