summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/check_disk.c16
-rw-r--r--plugins/t/check_disk.t13
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)
206 206
207 /* Process for every path in list */ 207 /* Process for every path in list */
208 for (path = path_select_list; path; path=path->name_next) { 208 for (path = path_select_list; path; path=path->name_next) {
209
210 /* reset disk result */
211 disk_result = STATE_UNKNOWN;
212
209 me = path->best_match; 213 me = path->best_match;
210 214
211 /* Filters */ 215 /* Filters */
@@ -258,23 +262,25 @@ main (int argc, char **argv)
258 262
259 temp_result = get_status(dfree_units, path->freespace_units); 263 temp_result = get_status(dfree_units, path->freespace_units);
260 if (verbose >=3) printf("Freespace_units result=%d\n", temp_result); 264 if (verbose >=3) printf("Freespace_units result=%d\n", temp_result);
261 result = max_state( result, temp_result ); 265 disk_result = max_state( disk_result, temp_result );
262 266
263 temp_result = get_status(dfree_pct, path->freespace_percent); 267 temp_result = get_status(dfree_pct, path->freespace_percent);
264 if (verbose >=3) printf("Freespace%% result=%d\n", temp_result); 268 if (verbose >=3) printf("Freespace%% result=%d\n", temp_result);
265 result = max_state( result, temp_result ); 269 disk_result = max_state( disk_result, temp_result );
266 270
267 temp_result = get_status(dused_units, path->usedspace_units); 271 temp_result = get_status(dused_units, path->usedspace_units);
268 if (verbose >=3) printf("Usedspace_units result=%d\n", temp_result); 272 if (verbose >=3) printf("Usedspace_units result=%d\n", temp_result);
269 result = max_state( result, temp_result ); 273 disk_result = max_state( disk_result, temp_result );
270 274
271 temp_result = get_status(dused_pct, path->usedspace_percent); 275 temp_result = get_status(dused_pct, path->usedspace_percent);
272 if (verbose >=3) printf("Usedspace_percent result=%d\n", temp_result); 276 if (verbose >=3) printf("Usedspace_percent result=%d\n", temp_result);
273 result = max_state( result, temp_result ); 277 disk_result = max_state( disk_result, temp_result );
274 278
275 temp_result = get_status(dused_inodes_percent, path->usedinodes_percent); 279 temp_result = get_status(dused_inodes_percent, path->usedinodes_percent);
276 if (verbose >=3) printf("Usedinodes_percent result=%d\n", temp_result); 280 if (verbose >=3) printf("Usedinodes_percent result=%d\n", temp_result);
277 result = max_state( result, temp_result ); 281 disk_result = max_state( disk_result, temp_result );
282
283 result = max_state(result, disk_result);
278 284
279 asprintf (&perf, "%s %s", perf, 285 asprintf (&perf, "%s %s", perf,
280 perfdata ((!strcmp(me->me_mountdir, "none") || display_mntp) ? me->me_devname : me->me_mountdir, 286 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
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 => 35; 25 plan tests => 39;
26} 26}
27 27
28$result = NPTest->testCmd( 28$result = NPTest->testCmd(
@@ -85,6 +85,16 @@ $result = NPTest->testCmd(
85 "./check_disk -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free" 85 "./check_disk -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free"
86 ); 86 );
87cmp_ok( $result->return_code, "==", 1, "Combining above two tests, get warning"); 87cmp_ok( $result->return_code, "==", 1, "Combining above two tests, get warning");
88my $all_disks = $result->output;
89
90$result = NPTest->testCmd(
91 "./check_disk -e -w $avg_free% -c 0% -p $less_free -w $avg_free% -c $avg_free% -p $more_free"
92 );
93isnt( $result->output, $all_disks, "-e gives different output");
94like( $result->output, qr/$less_free/, "Found problem $less_free");
95unlike( $result->only_output, qr/$more_free/, "Has ignored $more_free as not a problem");
96like( $result->perf_output, qr/$more_free/, "But $more_free is still in perf data");
97
88 98
89 99
90 100
@@ -97,7 +107,6 @@ $result = NPTest->testCmd(
97 "./check_disk -w $avg_free% -c $avg_free% -p $less_free" 107 "./check_disk -w $avg_free% -c $avg_free% -p $less_free"
98 ); 108 );
99cmp_ok( $result->return_code, '==', 2, "Get critical on less_free, checking avg_free"); 109cmp_ok( $result->return_code, '==', 2, "Get critical on less_free, checking avg_free");
100
101$result = NPTest->testCmd( 110$result = NPTest->testCmd(
102 "./check_disk -w $avg_free% -c 0% -p $more_free -w $avg_free% -c $avg_free% -p $less_free" 111 "./check_disk -w $avg_free% -c 0% -p $more_free -w $avg_free% -c $avg_free% -p $less_free"
103 ); 112 );