aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-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 1d64a506..004396fe 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
/* if there is no @file part */
if(stanza_len==locator_len){
i->file=default_file();
+ if(strcmp(i->file, "") == 0){
+ die(STATE_UNKNOWN, _("Cannot find '%s' or '%s' in any standard location.\n"), NP_DEFAULT_INI_FILENAME1, NP_DEFAULT_INI_FILENAME2);
+ }
} else {
i->file=strdup(&(locator[stanza_len+1]));
}
diff --git a/lib/tests/test_opts3.t b/lib/tests/test_opts3.t
index 47ec26b3..35b44687 100755
--- a/lib/tests/test_opts3.t
+++ b/lib/tests/test_opts3.t
@@ -8,15 +8,19 @@ if (! -e "./test_opts3") {
}
# array of argument arrays
-# - first value is the NAGIOS_CONFIG_PATH
-# - 2nd value is the plugin name
-# - 3rc and up are arguments
+# - First value is the expected return code
+# - 2nd value is the NAGIOS_CONFIG_PATH
+# TODO: looks like we look in default path after looking trough this variable - shall we?
+# - 3rd value is the plugin name
+# - 4th and up are arguments
my @TESTS = (
- ['/nonexistent', 'prog_name', 'arg1', '--extra-opts', '--arg3', 'val2'],
- ['.', 'prog_name', 'arg1', '--extra-opts=missing@./config-opts.ini', '--arg3', 'val2'],
- ['.', 'prog_name', 'arg1', '--extra-opts', 'missing@./config-opts.ini', '--arg3', 'val2'],
- ['.', 'check_missing', 'arg1', '--extra-opts=@./config-opts.ini', '--arg3', 'val2'],
- ['.', 'check_missing', 'arg1', '--extra-opts', '--arg3', 'val2'],
+ [3, '/nonexistent', 'prog_name', 'arg1', '--extra-opts', '--arg3', 'val2'],
+ [3, '.', 'prog_name', 'arg1', '--extra-opts=missing@./config-opts.ini', '--arg3', 'val2'],
+ [3, '', 'prog_name', 'arg1', '--extra-opts', 'missing@./config-opts.ini', '--arg3', 'val2'],
+ [3, '.', 'check_missing', 'arg1', '--extra-opts=@./config-opts.ini', '--arg3', 'val2'],
+ [3, '.', 'check_missing', 'arg1', '--extra-opts', '--arg3', 'val2'],
+ [0, '/tmp:/var:/nonexistent:.', 'check_tcp', 'arg1', '--extra-opts', '--arg3', 'val2'],
+ [0, '/usr/local/nagios/etc:.:/etc', 'check_missing', 'arg1', '--extra-opts=check_tcp', '--arg3', 'val2'],
);
plan tests => scalar(@TESTS);
@@ -24,8 +28,9 @@ plan tests => scalar(@TESTS);
my $count=1;
foreach my $args (@TESTS) {
+ my $rc = shift(@$args);
$ENV{"NAGIOS_CONFIG_PATH"} = shift(@$args);
system {'./test_opts3'} @$args;
- cmp_ok($?>>8, '==', 3, "Extra-opts die " . $count++);
+ cmp_ok($?>>8, '==', $rc, "Extra-opts die " . $count++);
}