diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2009-05-28 17:59:11 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2009-05-28 17:59:11 +0200 |
commit | 23dac82b684e966490de707a44144b3ad0ce2323 (patch) | |
tree | 1972593591da71c31badc1419866c882546048de /tests | |
parent | d8ba1a0d9f1f90c250cc2405f87be151ac609968 (diff) | |
download | rsyslog-23dac82b684e966490de707a44144b3ad0ce2323.tar.gz rsyslog-23dac82b684e966490de707a44144b3ad0ce2323.tar.xz rsyslog-23dac82b684e966490de707a44144b3ad0ce2323.zip |
small enhancement: config validation run now exits with code 1 if an error is detected.
This change is considered important but small enough
to apply it directly to the stable version. [But it is a border case,
the change requires more code than I had hoped. Thus I have NOT tried
to actually catch all cases, this is left for the current devel
releases, if necessary]
Diffstat (limited to 'tests')
-rw-r--r-- | tests/DevNull.cfgtest | 1 | ||||
-rw-r--r-- | tests/Makefile.am | 6 | ||||
-rw-r--r-- | tests/NoExistFile.cfgtest | 1 | ||||
-rw-r--r-- | tests/testsuites/invalid.conf | 3 | ||||
-rw-r--r-- | tests/testsuites/valid.conf | 3 | ||||
-rwxr-xr-x | tests/validation-run.sh | 38 |
6 files changed, 49 insertions, 3 deletions
diff --git a/tests/DevNull.cfgtest b/tests/DevNull.cfgtest index d30d936b..7822b6df 100644 --- a/tests/DevNull.cfgtest +++ b/tests/DevNull.cfgtest @@ -1,3 +1,2 @@ rsyslogd: CONFIG ERROR: there are no active actions configured. Inputs will run, but no output whatsoever is created. [try http://www.rsyslog.com/e/2103 ] rsyslogd: EMERGENCY CONFIGURATION ACTIVATED - fix rsyslog config file! -rsyslogd: End of config validation run. Bye. diff --git a/tests/Makefile.am b/tests/Makefile.am index 14e7c195..802a3ccb 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,10 +1,14 @@ check_PROGRAMS = rt_init rscript -TESTS = $(check_PROGRAMS) cfg.sh +TESTS = $(check_PROGRAMS) cfg.sh \ + validation-run.sh TESTS_ENVIRONMENT = RSYSLOG_MODDIR='$(abs_top_builddir)'/runtime/.libs/ #TESTS = $(check_PROGRAMS) test_files = testbench.h runtime-dummy.c EXTRA_DIST=1.rstest 2.rstest err1.rstest \ + validation-run.sh \ + testsuites/invalid.conf \ + testsuites/valid.conf \ cfg.sh \ cfg1.cfgtest \ cfg1.testin \ diff --git a/tests/NoExistFile.cfgtest b/tests/NoExistFile.cfgtest index 4cbcc029..88d3123f 100644 --- a/tests/NoExistFile.cfgtest +++ b/tests/NoExistFile.cfgtest @@ -1,3 +1,2 @@ rsyslogd: CONFIG ERROR: could not interpret master config file '/This/does/not/exist'. [try http://www.rsyslog.com/e/2013 ] rsyslogd: EMERGENCY CONFIGURATION ACTIVATED - fix rsyslog config file! -rsyslogd: End of config validation run. Bye. diff --git a/tests/testsuites/invalid.conf b/tests/testsuites/invalid.conf new file mode 100644 index 00000000..8a865ba5 --- /dev/null +++ b/tests/testsuites/invalid.conf @@ -0,0 +1,3 @@ +# This is an invalid config file that shall trigger an exit code +# with the config verification run +$invalid diff --git a/tests/testsuites/valid.conf b/tests/testsuites/valid.conf new file mode 100644 index 00000000..250f0546 --- /dev/null +++ b/tests/testsuites/valid.conf @@ -0,0 +1,3 @@ +# This is an invalid config file that shall trigger an exit code +# with the config verification run +*.* /tmp/data.log diff --git a/tests/validation-run.sh b/tests/validation-run.sh new file mode 100755 index 00000000..10981290 --- /dev/null +++ b/tests/validation-run.sh @@ -0,0 +1,38 @@ +# check if the configuration test run detects invalid config files. +# +# Part of the testbench for rsyslog. +# +# Copyright 2009 Rainer Gerhards and Adiscon GmbH. +# +# This file is part of rsyslog. +# +# Rsyslog is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Rsyslog is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Rsyslog. If not, see <http://www.gnu.org/licenses/>. +# +# A copy of the GPL can be found in the file "COPYING" in this distribution. +#set -x +echo "testing a failed configuration verification run" +../tools/rsyslogd -u2 -c3 -N1 -f$srcdir/testsuites/invalid.conf +if [ $? -ne 1 ]; then + exit 1 +fi +echo testing a valid config verification run +../tools/rsyslogd -u2 -c3 -N1 -f$srcdir/testsuites/valid.conf +if [ $? -ne 0 ]; then + exit 1 +fi +echo testing empty config file +../tools/rsyslogd -u2 -c3 -N1 -f/dev/null +if [ $? -ne 1 ]; then + exit 1 +fi |