diff options
author | Ton Voon <tonvoon@users.sourceforge.net> | 2006-10-12 13:58:43 +0000 |
---|---|---|
committer | Ton Voon <tonvoon@users.sourceforge.net> | 2006-10-12 13:58:43 +0000 |
commit | bd9a612f6c18fcc9b17e5abf58def18b19521d82 (patch) | |
tree | c4bb4e93ccbca424b2bd7aeb2a6ad799bc3e3791 /plugins | |
parent | cff53455ffc4d4df7214f8d671b3dca7ca26f51d (diff) | |
download | monitoring-plugins-bd9a612f6c18fcc9b17e5abf58def18b19521d82.tar.gz |
Fixed output from -e in check_disk (Andreas Behal)
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1490 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/check_disk.c | 16 | ||||
-rw-r--r-- | plugins/t/check_disk.t | 13 |
2 files changed, 22 insertions, 7 deletions
diff --git a/plugins/check_disk.c b/plugins/check_disk.c index b546fd2f..b9787c89 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c @@ -206,6 +206,10 @@ main (int argc, char **argv) /* Process for every path in list */ for (path = path_select_list; path; path=path->name_next) { + + /* reset disk result */ + disk_result = STATE_UNKNOWN; + me = path->best_match; /* Filters */ @@ -258,23 +262,25 @@ main (int argc, char **argv) temp_result = get_status(dfree_units, path->freespace_units); if (verbose >=3) printf("Freespace_units result=%d\n", temp_result); - result = max_state( result, temp_result ); + disk_result = max_state( disk_result, temp_result ); temp_result = get_status(dfree_pct, path->freespace_percent); if (verbose >=3) printf("Freespace%% result=%d\n", temp_result); - result = max_state( result, temp_result ); + disk_result = max_state( disk_result, temp_result ); temp_result = get_status(dused_units, path->usedspace_units); if (verbose >=3) printf("Usedspace_units result=%d\n", temp_result); - result = max_state( result, temp_result ); + disk_result = max_state( disk_result, temp_result ); temp_result = get_status(dused_pct, path->usedspace_percent); if (verbose >=3) printf("Usedspace_percent result=%d\n", temp_result); - result = max_state( result, temp_result ); + disk_result = max_state( disk_result, temp_result ); temp_result = get_status(dused_inodes_percent, path->usedinodes_percent); if (verbose >=3) printf("Usedinodes_percent result=%d\n", temp_result); - result = max_state( result, temp_result ); + disk_result = max_state( disk_result, temp_result ); + + result = max_state(result, disk_result); asprintf (&perf, "%s %s", perf, perfdata ((!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, diff --git a/plugins/t/check_disk.t b/plugins/t/check_disk.t index 66344927..0fe87aa3 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 if ($mountpoint_valid eq "" or $mountpoint2_valid eq "") { plan skip_all => "Need 2 mountpoints to test"; } else { - plan tests => 35; + plan tests => 39; } $result = NPTest->testCmd( @@ -85,6 +85,16 @@ $result = NPTest->testCmd( "./check_disk -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free" ); cmp_ok( $result->return_code, "==", 1, "Combining above two tests, get warning"); +my $all_disks = $result->output; + +$result = NPTest->testCmd( + "./check_disk -e -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free" + ); +isnt( $result->output, $all_disks, "-e gives different output"); +like( $result->output, qr/$less_free/, "Found problem $less_free"); +unlike( $result->only_output, qr/$more_free/, "Has ignored $more_free as not a problem"); +like( $result->perf_output, qr/$more_free/, "But $more_free is still in perf data"); + @@ -97,7 +107,6 @@ $result = NPTest->testCmd( "./check_disk -w $avg_free% -c $avg_free% -p $less_free" ); cmp_ok( $result->return_code, '==', 2, "Get critical on less_free, checking avg_free"); - $result = NPTest->testCmd( "./check_disk -w $avg_free% -c 0% -p $more_free -w $avg_free% -c $avg_free% -p $less_free" ); |