summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/parse_ini.c3
-rwxr-xr-xlib/tests/test_opts3.t23
2 files changed, 17 insertions, 9 deletions
diff --git a/lib/parse_ini.c b/lib/parse_ini.c
index 1d64a50..004396f 100644
--- a/lib/parse_ini.c
+++ b/lib/parse_ini.c
@@ -75,6 +75,9 @@ static void parse_locator(const char *locator, const char *def_stanza, np_ini_in
75 /* if there is no @file part */ 75 /* if there is no @file part */
76 if(stanza_len==locator_len){ 76 if(stanza_len==locator_len){
77 i->file=default_file(); 77 i->file=default_file();
78 if(strcmp(i->file, "") == 0){
79 die(STATE_UNKNOWN, _("Cannot find '%s' or '%s' in any standard location.\n"), NP_DEFAULT_INI_FILENAME1, NP_DEFAULT_INI_FILENAME2);
80 }
78 } else { 81 } else {
79 i->file=strdup(&(locator[stanza_len+1])); 82 i->file=strdup(&(locator[stanza_len+1]));
80 } 83 }
diff --git a/lib/tests/test_opts3.t b/lib/tests/test_opts3.t
index 47ec26b..35b4468 100755
--- a/lib/tests/test_opts3.t
+++ b/lib/tests/test_opts3.t
@@ -8,15 +8,19 @@ if (! -e "./test_opts3") {
8} 8}
9 9
10# array of argument arrays 10# array of argument arrays
11# - first value is the NAGIOS_CONFIG_PATH 11# - First value is the expected return code
12# - 2nd value is the plugin name 12# - 2nd value is the NAGIOS_CONFIG_PATH
13# - 3rc and up are arguments 13# TODO: looks like we look in default path after looking trough this variable - shall we?
14# - 3rd value is the plugin name
15# - 4th and up are arguments
14my @TESTS = ( 16my @TESTS = (
15 ['/nonexistent', 'prog_name', 'arg1', '--extra-opts', '--arg3', 'val2'], 17 [3, '/nonexistent', 'prog_name', 'arg1', '--extra-opts', '--arg3', 'val2'],
16 ['.', 'prog_name', 'arg1', '--extra-opts=missing@./config-opts.ini', '--arg3', 'val2'], 18 [3, '.', 'prog_name', 'arg1', '--extra-opts=missing@./config-opts.ini', '--arg3', 'val2'],
17 ['.', 'prog_name', 'arg1', '--extra-opts', 'missing@./config-opts.ini', '--arg3', 'val2'], 19 [3, '', 'prog_name', 'arg1', '--extra-opts', 'missing@./config-opts.ini', '--arg3', 'val2'],
18 ['.', 'check_missing', 'arg1', '--extra-opts=@./config-opts.ini', '--arg3', 'val2'], 20 [3, '.', 'check_missing', 'arg1', '--extra-opts=@./config-opts.ini', '--arg3', 'val2'],
19 ['.', 'check_missing', 'arg1', '--extra-opts', '--arg3', 'val2'], 21 [3, '.', 'check_missing', 'arg1', '--extra-opts', '--arg3', 'val2'],
22 [0, '/tmp:/var:/nonexistent:.', 'check_tcp', 'arg1', '--extra-opts', '--arg3', 'val2'],
23 [0, '/usr/local/nagios/etc:.:/etc', 'check_missing', 'arg1', '--extra-opts=check_tcp', '--arg3', 'val2'],
20); 24);
21 25
22plan tests => scalar(@TESTS); 26plan tests => scalar(@TESTS);
@@ -24,8 +28,9 @@ plan tests => scalar(@TESTS);
24my $count=1; 28my $count=1;
25 29
26foreach my $args (@TESTS) { 30foreach my $args (@TESTS) {
31 my $rc = shift(@$args);
27 $ENV{"NAGIOS_CONFIG_PATH"} = shift(@$args); 32 $ENV{"NAGIOS_CONFIG_PATH"} = shift(@$args);
28 system {'./test_opts3'} @$args; 33 system {'./test_opts3'} @$args;
29 cmp_ok($?>>8, '==', 3, "Extra-opts die " . $count++); 34 cmp_ok($?>>8, '==', $rc, "Extra-opts die " . $count++);
30} 35}
31 36