diff options
-rw-r--r-- | plugins/Makefile.am | 4 | ||||
-rw-r--r-- | plugins/check_disk.c | 108 | ||||
-rw-r--r-- | plugins/tests/Makefile.am | 9 | ||||
-rw-r--r-- | plugins/tests/test_disk.c | 85 | ||||
-rwxr-xr-x | plugins/tests/test_disk.t | 6 | ||||
-rw-r--r-- | plugins/utils_disk.c | 62 | ||||
-rw-r--r-- | plugins/utils_disk.h | 12 |
7 files changed, 205 insertions, 81 deletions
diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 81645b8..28793cd 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am | |||
@@ -55,7 +55,7 @@ AM_INSTALL_PROGRAM_FLAGS = @INSTALL_OPTS@ | |||
55 | 55 | ||
56 | check_apt_LDADD = $(BASEOBJS) runcmd.o | 56 | check_apt_LDADD = $(BASEOBJS) runcmd.o |
57 | check_dig_LDADD = $(NETLIBS) runcmd.o | 57 | check_dig_LDADD = $(NETLIBS) runcmd.o |
58 | check_disk_LDADD = $(BASEOBJS) popen.o | 58 | check_disk_LDADD = $(BASEOBJS) popen.o utils_disk.o |
59 | check_dns_LDADD = $(NETLIBS) runcmd.o | 59 | check_dns_LDADD = $(NETLIBS) runcmd.o |
60 | check_dummy_LDADD = $(BASEOBJS) | 60 | check_dummy_LDADD = $(BASEOBJS) |
61 | check_fping_LDADD = $(NETLIBS) popen.o | 61 | check_fping_LDADD = $(NETLIBS) popen.o |
@@ -98,7 +98,7 @@ urlize_LDADD = $(BASEOBJS) popen.o | |||
98 | 98 | ||
99 | check_apt_DEPENDENCIES = check_apt.c $(BASEOBJS) runcmd.o $(DEPLIBS) | 99 | check_apt_DEPENDENCIES = check_apt.c $(BASEOBJS) runcmd.o $(DEPLIBS) |
100 | check_dig_DEPENDENCIES = check_dig.c $(NETOBJS) runcmd.o $(DEPLIBS) | 100 | check_dig_DEPENDENCIES = check_dig.c $(NETOBJS) runcmd.o $(DEPLIBS) |
101 | check_disk_DEPENDENCIES = check_disk.c $(BASEOBJS) popen.o $(DEPLIBS) | 101 | check_disk_DEPENDENCIES = check_disk.c $(BASEOBJS) popen.o utils_disk.o $(DEPLIBS) |
102 | check_dns_DEPENDENCIES = check_dns.c $(NETOBJS) runcmd.o $(DEPLIBS) | 102 | check_dns_DEPENDENCIES = check_dns.c $(NETOBJS) runcmd.o $(DEPLIBS) |
103 | check_dummy_DEPENDENCIES = check_dummy.c $(DEPLIBS) | 103 | check_dummy_DEPENDENCIES = check_dummy.c $(DEPLIBS) |
104 | check_fping_DEPENDENCIES = check_fping.c $(NETOBJS) popen.o $(DEPLIBS) | 104 | check_fping_DEPENDENCIES = check_fping.c $(NETOBJS) popen.o $(DEPLIBS) |
diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 8a824c1..f0a679d 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c | |||
@@ -37,10 +37,6 @@ const char *revision = "$Revision$"; | |||
37 | const char *copyright = "1999-2006"; | 37 | const char *copyright = "1999-2006"; |
38 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; | 38 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; |
39 | 39 | ||
40 | /* | ||
41 | * Additional inode code by Jorgen Lundman <lundman@lundman.net> | ||
42 | */ | ||
43 | |||
44 | 40 | ||
45 | #include "common.h" | 41 | #include "common.h" |
46 | #if HAVE_INTTYPES_H | 42 | #if HAVE_INTTYPES_H |
@@ -50,12 +46,14 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
50 | #include "popen.h" | 46 | #include "popen.h" |
51 | #include "utils.h" | 47 | #include "utils.h" |
52 | #include <stdarg.h> | 48 | #include <stdarg.h> |
53 | #include "../lib/fsusage.h" | 49 | #include "fsusage.h" |
54 | #include "../lib/mountlist.h" | 50 | #include "mountlist.h" |
55 | #if HAVE_LIMITS_H | 51 | #if HAVE_LIMITS_H |
56 | # include <limits.h> | 52 | # include <limits.h> |
57 | #endif | 53 | #endif |
58 | 54 | ||
55 | #include "utils_disk.h" | ||
56 | |||
59 | /* If nonzero, show inode information. */ | 57 | /* If nonzero, show inode information. */ |
60 | static int inode_format; | 58 | static int inode_format; |
61 | 59 | ||
@@ -77,8 +75,7 @@ static int show_local_fs = 0; | |||
77 | /* static int require_sync = 0; */ | 75 | /* static int require_sync = 0; */ |
78 | 76 | ||
79 | /* A filesystem type to display. */ | 77 | /* A filesystem type to display. */ |
80 | 78 | struct parameter_list | |
81 | struct name_list | ||
82 | { | 79 | { |
83 | char *name; | 80 | char *name; |
84 | int found; | 81 | int found; |
@@ -89,7 +86,7 @@ struct name_list | |||
89 | double c_dfp; | 86 | double c_dfp; |
90 | double w_idfp; | 87 | double w_idfp; |
91 | double c_idfp; | 88 | double c_idfp; |
92 | struct name_list *name_next; | 89 | struct parameter_list *name_next; |
93 | }; | 90 | }; |
94 | 91 | ||
95 | /* Linked list of filesystem types to display. | 92 | /* Linked list of filesystem types to display. |
@@ -103,7 +100,7 @@ struct name_list | |||
103 | Some filesystem types: | 100 | Some filesystem types: |
104 | 4.2 4.3 ufs nfs swap ignore io vm efs dbg */ | 101 | 4.2 4.3 ufs nfs swap ignore io vm efs dbg */ |
105 | 102 | ||
106 | /* static struct name_list *fs_select_list; */ | 103 | /* static struct parameter_list *fs_select_list; */ |
107 | 104 | ||
108 | /* Linked list of filesystem types to omit. | 105 | /* Linked list of filesystem types to omit. |
109 | If the list is empty, don't exclude any types. */ | 106 | If the list is empty, don't exclude any types. */ |
@@ -112,9 +109,7 @@ static struct name_list *fs_exclude_list; | |||
112 | 109 | ||
113 | static struct name_list *dp_exclude_list; | 110 | static struct name_list *dp_exclude_list; |
114 | 111 | ||
115 | static struct name_list *path_select_list; | 112 | static struct parameter_list *path_select_list; |
116 | |||
117 | static struct name_list *dev_select_list; | ||
118 | 113 | ||
119 | /* Linked list of mounted filesystems. */ | 114 | /* Linked list of mounted filesystems. */ |
120 | static struct mount_entry *mount_list; | 115 | static struct mount_entry *mount_list; |
@@ -132,11 +127,14 @@ enum | |||
132 | #pragma alloca | 127 | #pragma alloca |
133 | #endif | 128 | #endif |
134 | 129 | ||
130 | /* Linked list of mounted filesystems. */ | ||
131 | static struct mount_entry *mount_list; | ||
132 | |||
135 | int process_arguments (int, char **); | 133 | int process_arguments (int, char **); |
136 | void print_path (const char *mypath); | 134 | void print_path (const char *mypath); |
137 | int validate_arguments (uintmax_t, uintmax_t, double, double, double, double, char *); | 135 | int validate_arguments (uintmax_t, uintmax_t, double, double, double, double, char *); |
138 | int check_disk (double usp, uintmax_t free_disk, double uisp); | 136 | int check_disk (double usp, uintmax_t free_disk, double uisp); |
139 | int walk_name_list (struct name_list *list, const char *name); | 137 | int walk_parameter_list (struct parameter_list *list, const char *name); |
140 | void print_help (void); | 138 | void print_help (void); |
141 | void print_usage (void); | 139 | void print_usage (void); |
142 | 140 | ||
@@ -154,9 +152,6 @@ int verbose = 0; | |||
154 | int erronly = FALSE; | 152 | int erronly = FALSE; |
155 | int display_mntp = FALSE; | 153 | int display_mntp = FALSE; |
156 | 154 | ||
157 | /* Linked list of mounted filesystems. */ | ||
158 | static struct mount_entry *mount_list; | ||
159 | |||
160 | 155 | ||
161 | 156 | ||
162 | int | 157 | int |
@@ -174,7 +169,7 @@ main (int argc, char **argv) | |||
174 | 169 | ||
175 | struct mount_entry *me; | 170 | struct mount_entry *me; |
176 | struct fs_usage fsp; | 171 | struct fs_usage fsp; |
177 | struct name_list *temp_list; | 172 | struct parameter_list *temp_list; |
178 | 173 | ||
179 | output = strdup (" - free space:"); | 174 | output = strdup (" - free space:"); |
180 | details = strdup (""); | 175 | details = strdup (""); |
@@ -199,8 +194,8 @@ main (int argc, char **argv) | |||
199 | */ | 194 | */ |
200 | if(path_select_list){ | 195 | if(path_select_list){ |
201 | for (me = mount_list; me; me = me->me_next) { | 196 | for (me = mount_list; me; me = me->me_next) { |
202 | walk_name_list(path_select_list, me->me_mountdir); | 197 | walk_parameter_list(path_select_list, me->me_mountdir); |
203 | walk_name_list(path_select_list, me->me_devname); | 198 | walk_parameter_list(path_select_list, me->me_devname); |
204 | } | 199 | } |
205 | /* now pretend we never saw anything, but keep found_len. | 200 | /* now pretend we never saw anything, but keep found_len. |
206 | * thus future searches will only match the best match */ | 201 | * thus future searches will only match the best match */ |
@@ -214,12 +209,12 @@ main (int argc, char **argv) | |||
214 | /* if there's a list of paths to select, the current mount | 209 | /* if there's a list of paths to select, the current mount |
215 | * entry matches in path or device name, get fs usage */ | 210 | * entry matches in path or device name, get fs usage */ |
216 | if (path_select_list && | 211 | if (path_select_list && |
217 | (walk_name_list (path_select_list, me->me_mountdir) || | 212 | (walk_parameter_list (path_select_list, me->me_mountdir) || |
218 | walk_name_list (path_select_list, me->me_devname) ) ) { | 213 | walk_parameter_list (path_select_list, me->me_devname) ) ) { |
219 | get_fs_usage (me->me_mountdir, me->me_devname, &fsp); | 214 | get_fs_usage (me->me_mountdir, me->me_devname, &fsp); |
220 | /* else if there's a list of paths/devices to select (but | 215 | /* else if there's a list of paths/devices to select (but |
221 | * we didn't match above) skip to the next mount entry */ | 216 | * we didn't match above) skip to the next mount entry */ |
222 | } else if (dev_select_list || path_select_list) { | 217 | } else if (path_select_list) { |
223 | continue; | 218 | continue; |
224 | /* skip remote filesystems if we're not interested in them */ | 219 | /* skip remote filesystems if we're not interested in them */ |
225 | } else if (me->me_remote && show_local_fs) { | 220 | } else if (me->me_remote && show_local_fs) { |
@@ -228,12 +223,12 @@ main (int argc, char **argv) | |||
228 | } else if (me->me_dummy && !show_all_fs) { | 223 | } else if (me->me_dummy && !show_all_fs) { |
229 | continue; | 224 | continue; |
230 | /* skip excluded fstypes */ | 225 | /* skip excluded fstypes */ |
231 | } else if (fs_exclude_list && walk_name_list (fs_exclude_list, me->me_type)) { | 226 | } else if (fs_exclude_list && np_find_name (fs_exclude_list, me->me_type)) { |
232 | continue; | 227 | continue; |
233 | /* skip excluded fs's */ | 228 | /* skip excluded fs's */ |
234 | } else if (dp_exclude_list && | 229 | } else if (dp_exclude_list && |
235 | (walk_name_list (dp_exclude_list, me->me_devname) || | 230 | (np_find_name (dp_exclude_list, me->me_devname) || |
236 | walk_name_list (dp_exclude_list, me->me_mountdir))) { | 231 | np_find_name (dp_exclude_list, me->me_mountdir))) { |
237 | continue; | 232 | continue; |
238 | /* otherwise, get fs usage */ | 233 | /* otherwise, get fs usage */ |
239 | } else { | 234 | } else { |
@@ -312,11 +307,9 @@ int | |||
312 | process_arguments (int argc, char **argv) | 307 | process_arguments (int argc, char **argv) |
313 | { | 308 | { |
314 | int c; | 309 | int c; |
315 | struct name_list *se; | 310 | struct parameter_list *se; |
316 | struct name_list **pathtail = &path_select_list; | 311 | struct parameter_list **pathtail = &path_select_list; |
317 | struct name_list **fstail = &fs_exclude_list; | 312 | struct parameter_list *temp_list; |
318 | struct name_list **dptail = &dp_exclude_list; | ||
319 | struct name_list *temp_list; | ||
320 | int result = OK; | 313 | int result = OK; |
321 | struct stat *stat_buf; | 314 | struct stat *stat_buf; |
322 | 315 | ||
@@ -351,13 +344,7 @@ process_arguments (int argc, char **argv) | |||
351 | if (argc < 2) | 344 | if (argc < 2) |
352 | return ERROR; | 345 | return ERROR; |
353 | 346 | ||
354 | se = (struct name_list *) malloc (sizeof (struct name_list)); | 347 | np_add_name(&fs_exclude_list, "iso9660"); |
355 | se->name = strdup ("iso9660"); | ||
356 | se->name_next = NULL; | ||
357 | se->found = 0; | ||
358 | se->found_len = 0; | ||
359 | *fstail = se; | ||
360 | fstail = &se->name_next; | ||
361 | 348 | ||
362 | for (c = 1; c < argc; c++) | 349 | for (c = 1; c < argc; c++) |
363 | if (strcmp ("-to", argv[c]) == 0) | 350 | if (strcmp ("-to", argv[c]) == 0) |
@@ -468,7 +455,7 @@ process_arguments (int argc, char **argv) | |||
468 | show_local_fs = 1; | 455 | show_local_fs = 1; |
469 | break; | 456 | break; |
470 | case 'p': /* select path */ | 457 | case 'p': /* select path */ |
471 | se = (struct name_list *) malloc (sizeof (struct name_list)); | 458 | se = (struct parameter_list *) malloc (sizeof (struct parameter_list)); |
472 | se->name = optarg; | 459 | se->name = optarg; |
473 | se->name_next = NULL; | 460 | se->name_next = NULL; |
474 | se->w_df = w_df; | 461 | se->w_df = w_df; |
@@ -483,43 +470,10 @@ process_arguments (int argc, char **argv) | |||
483 | pathtail = &se->name_next; | 470 | pathtail = &se->name_next; |
484 | break; | 471 | break; |
485 | case 'x': /* exclude path or partition */ | 472 | case 'x': /* exclude path or partition */ |
486 | se = (struct name_list *) malloc (sizeof (struct name_list)); | 473 | np_add_name(&dp_exclude_list, optarg); |
487 | se->name = optarg; | ||
488 | se->name_next = NULL; | ||
489 | |||
490 | /* If you don't clear the w_fd etc values here, they | ||
491 | * get processed when you walk the list and assigned | ||
492 | * to the global w_df! | ||
493 | */ | ||
494 | se->w_df = 0; | ||
495 | se->c_df = 0; | ||
496 | se->w_dfp = 0; | ||
497 | se->c_dfp = 0; | ||
498 | se->w_idfp = 0; | ||
499 | se->c_idfp = 0; | ||
500 | se->found = 0; | ||
501 | se->found_len = 0; | ||
502 | *dptail = se; | ||
503 | dptail = &se->name_next; | ||
504 | break; | 474 | break; |
505 | case 'X': /* exclude file system type */ | 475 | case 'X': /* exclude file system type */ |
506 | se = (struct name_list *) malloc (sizeof (struct name_list)); | 476 | np_add_name(&fs_exclude_list, optarg); |
507 | se->name = optarg; | ||
508 | se->name_next = NULL; | ||
509 | /* If you don't clear the w_fd etc values here, they | ||
510 | * get processed when you walk the list and assigned | ||
511 | * to the global w_df! | ||
512 | */ | ||
513 | se->w_df = 0; | ||
514 | se->c_df = 0; | ||
515 | se->w_dfp = 0; | ||
516 | se->c_dfp = 0; | ||
517 | se->w_idfp = 0; | ||
518 | se->c_idfp = 0; | ||
519 | se->found = 0; | ||
520 | se->found_len = 0; | ||
521 | *fstail = se; | ||
522 | fstail = &se->name_next; | ||
523 | break; | 477 | break; |
524 | case 'v': /* verbose */ | 478 | case 'v': /* verbose */ |
525 | verbose++; | 479 | verbose++; |
@@ -561,7 +515,7 @@ process_arguments (int argc, char **argv) | |||
561 | c_dfp = (100.0 - atof (argv[c++])); | 515 | c_dfp = (100.0 - atof (argv[c++])); |
562 | 516 | ||
563 | if (argc > c && path == NULL) { | 517 | if (argc > c && path == NULL) { |
564 | se = (struct name_list *) malloc (sizeof (struct name_list)); | 518 | se = (struct parameter_list *) malloc (sizeof (struct parameter_list)); |
565 | se->name = strdup (argv[c++]); | 519 | se->name = strdup (argv[c++]); |
566 | se->name_next = NULL; | 520 | se->name_next = NULL; |
567 | se->w_df = w_df; | 521 | se->w_df = w_df; |
@@ -683,7 +637,7 @@ check_disk (double usp, uintmax_t free_disk, double uisp) | |||
683 | 637 | ||
684 | 638 | ||
685 | int | 639 | int |
686 | walk_name_list (struct name_list *list, const char *name) | 640 | walk_parameter_list (struct parameter_list *list, const char *name) |
687 | { | 641 | { |
688 | int name_len; | 642 | int name_len; |
689 | name_len = strlen(name); | 643 | name_len = strlen(name); |
@@ -695,7 +649,7 @@ walk_name_list (struct name_list *list, const char *name) | |||
695 | ! strncmp(list->name, name, name_len)) { | 649 | ! strncmp(list->name, name, name_len)) { |
696 | list->found = 1; | 650 | list->found = 1; |
697 | list->found_len = name_len; | 651 | list->found_len = name_len; |
698 | /* if required for name_lists that have not saved w_df, etc (eg exclude lists) */ | 652 | /* if required for parameter_lists that have not saved w_df, etc (eg exclude lists) */ |
699 | if (list->w_df) w_df = list->w_df; | 653 | if (list->w_df) w_df = list->w_df; |
700 | if (list->c_df) c_df = list->c_df; | 654 | if (list->c_df) c_df = list->c_df; |
701 | if (list->w_dfp>=0.0) w_dfp = list->w_dfp; | 655 | if (list->w_dfp>=0.0) w_dfp = list->w_dfp; |
diff --git a/plugins/tests/Makefile.am b/plugins/tests/Makefile.am index 8ed3fc1..741499d 100644 --- a/plugins/tests/Makefile.am +++ b/plugins/tests/Makefile.am | |||
@@ -7,9 +7,9 @@ check_PROGRAMS = @EXTRA_TEST@ | |||
7 | 7 | ||
8 | INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/intl | 8 | INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/intl |
9 | 9 | ||
10 | EXTRA_PROGRAMS = test_utils | 10 | EXTRA_PROGRAMS = test_utils test_disk |
11 | 11 | ||
12 | EXTRA_DIST = test_utils.t | 12 | EXTRA_DIST = test_utils.t test_disk.t |
13 | 13 | ||
14 | LIBS = @LIBINTL@ | 14 | LIBS = @LIBINTL@ |
15 | 15 | ||
@@ -18,6 +18,11 @@ test_utils_CFLAGS = -g -I.. | |||
18 | test_utils_LDFLAGS = -L/usr/local/lib -ltap | 18 | test_utils_LDFLAGS = -L/usr/local/lib -ltap |
19 | test_utils_LDADD = ../utils.o | 19 | test_utils_LDADD = ../utils.o |
20 | 20 | ||
21 | test_disk_SOURCES = test_disk.c | ||
22 | test_disk_CFLAGS = -g -I.. | ||
23 | test_disk_LDFLAGS = -L/usr/local/lib -ltap | ||
24 | test_disk_LDADD = ../utils_disk.o | ||
25 | |||
21 | test: ${noinst_PROGRAMS} | 26 | test: ${noinst_PROGRAMS} |
22 | perl -MTest::Harness -e '$$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS) | 27 | perl -MTest::Harness -e '$$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS) |
23 | 28 | ||
diff --git a/plugins/tests/test_disk.c b/plugins/tests/test_disk.c new file mode 100644 index 0000000..19cc3ac --- /dev/null +++ b/plugins/tests/test_disk.c | |||
@@ -0,0 +1,85 @@ | |||
1 | /****************************************************************************** | ||
2 | |||
3 | This program is free software; you can redistribute it and/or modify | ||
4 | it under the terms of the GNU General Public License as published by | ||
5 | the Free Software Foundation; either version 2 of the License, or | ||
6 | (at your option) any later version. | ||
7 | |||
8 | This program is distributed in the hope that it will be useful, | ||
9 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | GNU General Public License for more details. | ||
12 | |||
13 | You should have received a copy of the GNU General Public License | ||
14 | along with this program; if not, write to the Free Software | ||
15 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
16 | |||
17 | $Id$ | ||
18 | |||
19 | ******************************************************************************/ | ||
20 | |||
21 | #include "common.h" | ||
22 | #include "utils_disk.h" | ||
23 | #include "tap.h" | ||
24 | |||
25 | int | ||
26 | main (int argc, char **argv) | ||
27 | { | ||
28 | struct name_list *exclude_filesystem=NULL; | ||
29 | struct name_list *exclude_fstype=NULL; | ||
30 | |||
31 | plan_tests(8); | ||
32 | |||
33 | ok( np_find_name(exclude_filesystem, "/var") == FALSE, "/var not in list"); | ||
34 | np_add_name(&exclude_filesystem, "/var"); | ||
35 | ok( np_find_name(exclude_filesystem, "/var") == TRUE, "is in list now"); | ||
36 | ok( np_find_name(exclude_filesystem, "/home") == FALSE, "/home not in list"); | ||
37 | np_add_name(&exclude_filesystem, "/home"); | ||
38 | ok( np_find_name(exclude_filesystem, "/home") == TRUE, "is in list now"); | ||
39 | ok( np_find_name(exclude_filesystem, "/var") == TRUE, "/var still in list"); | ||
40 | |||
41 | ok( np_find_name(exclude_fstype, "iso9660") == FALSE, "iso9660 not in list"); | ||
42 | np_add_name(&exclude_fstype, "iso9660"); | ||
43 | ok( np_find_name(exclude_fstype, "iso9660") == TRUE, "is in list now"); | ||
44 | |||
45 | ok( np_find_name(exclude_filesystem, "iso9660") == FALSE, "Make sure no clashing in variables"); | ||
46 | |||
47 | |||
48 | |||
49 | |||
50 | /* | ||
51 | range = parse_range_string("6"); | ||
52 | ok( range != NULL, "'6' is valid range"); | ||
53 | ok( range->start == 0, "Start correct"); | ||
54 | ok( range->start_infinity == FALSE, "Not using negative infinity"); | ||
55 | ok( range->end == 6, "End correct"); | ||
56 | ok( range->end_infinity == FALSE, "Not using infinity"); | ||
57 | free(range); | ||
58 | |||
59 | range = parse_range_string("-7:23"); | ||
60 | ok( range != NULL, "'-7:23' is valid range"); | ||
61 | ok( range->start == -7, "Start correct"); | ||
62 | ok( range->start_infinity == FALSE, "Not using negative infinity"); | ||
63 | ok( range->end == 23, "End correct"); | ||
64 | ok( range->end_infinity == FALSE, "Not using infinity"); | ||
65 | free(range); | ||
66 | |||
67 | range = parse_range_string(":5.75"); | ||
68 | ok( range != NULL, "':5.75' is valid range"); | ||
69 | ok( range->start == 0, "Start correct"); | ||
70 | ok( range->start_infinity == FALSE, "Not using negative infinity"); | ||
71 | ok( range->end == 5.75, "End correct"); | ||
72 | ok( range->end_infinity == FALSE, "Not using infinity"); | ||
73 | free(range); | ||
74 | |||
75 | range = parse_range_string("~:-95.99"); | ||
76 | ok( range != NULL, "~:-95.99' is valid range"); | ||
77 | ok( range->start_infinity == TRUE, "Using negative infinity"); | ||
78 | ok( range->end == -95.99, "End correct (with rounding errors)"); | ||
79 | ok( range->end_infinity == FALSE, "Not using infinity"); | ||
80 | free(range); | ||
81 | */ | ||
82 | |||
83 | return exit_status(); | ||
84 | } | ||
85 | |||
diff --git a/plugins/tests/test_disk.t b/plugins/tests/test_disk.t new file mode 100755 index 0000000..d32567a --- /dev/null +++ b/plugins/tests/test_disk.t | |||
@@ -0,0 +1,6 @@ | |||
1 | #!/usr/bin/perl | ||
2 | use Test::More; | ||
3 | if (! -e "./test_disk") { | ||
4 | plan skip_all => "./test_disk not compiled - please install tap library to test"; | ||
5 | } | ||
6 | exec "./test_disk"; | ||
diff --git a/plugins/utils_disk.c b/plugins/utils_disk.c new file mode 100644 index 0000000..6380df3 --- /dev/null +++ b/plugins/utils_disk.c | |||
@@ -0,0 +1,62 @@ | |||
1 | /**************************************************************************** | ||
2 | * Utils for check_disk | ||
3 | * | ||
4 | * License: GPL | ||
5 | * Copyright (c) 1999-2006 nagios-plugins team | ||
6 | * | ||
7 | * Last Modified: $Date$ | ||
8 | * | ||
9 | * Description: | ||
10 | * | ||
11 | * This file contains utilities for check_disk. These are tested by libtap | ||
12 | * | ||
13 | * License Information: | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify | ||
16 | * it under the terms of the GNU General Public License as published by | ||
17 | * the Free Software Foundation; either version 2 of the License, or | ||
18 | * (at your option) any later version. | ||
19 | * | ||
20 | * This program is distributed in the hope that it will be useful, | ||
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
23 | * GNU General Public License for more details. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License | ||
26 | * along with this program; if not, write to the Free Software | ||
27 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
28 | * | ||
29 | * $Id$ | ||
30 | * | ||
31 | *****************************************************************************/ | ||
32 | |||
33 | #include "common.h" | ||
34 | #include "utils_disk.h" | ||
35 | |||
36 | void | ||
37 | np_add_name (struct name_list **list, const char *name) | ||
38 | { | ||
39 | struct name_list *new_entry; | ||
40 | new_entry = (struct name_list *) malloc (sizeof *new_entry); | ||
41 | new_entry->name = (char *) name; | ||
42 | new_entry->next = *list; | ||
43 | *list = new_entry; | ||
44 | } | ||
45 | |||
46 | /* Returns TRUE if name is in list */ | ||
47 | int | ||
48 | np_find_name (struct name_list *list, const char *name) | ||
49 | { | ||
50 | const struct name_list *n; | ||
51 | |||
52 | if (list == NULL || name == NULL) { | ||
53 | return FALSE; | ||
54 | } | ||
55 | for (n = list; n; n = n->next) { | ||
56 | if (!strcmp(name, n->name)) { | ||
57 | return TRUE; | ||
58 | } | ||
59 | } | ||
60 | return FALSE; | ||
61 | } | ||
62 | |||
diff --git a/plugins/utils_disk.h b/plugins/utils_disk.h new file mode 100644 index 0000000..f173c91 --- /dev/null +++ b/plugins/utils_disk.h | |||
@@ -0,0 +1,12 @@ | |||
1 | /* Header file for utils_disk */ | ||
2 | |||
3 | |||
4 | struct name_list | ||
5 | { | ||
6 | char *name; | ||
7 | struct name_list *next; | ||
8 | }; | ||
9 | |||
10 | void np_add_name (struct name_list **list, const char *name); | ||
11 | int np_find_name (struct name_list *list, const char *name); | ||
12 | |||