summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-05-28 17:59:11 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-05-28 17:59:11 +0200
commit23dac82b684e966490de707a44144b3ad0ce2323 (patch)
tree1972593591da71c31badc1419866c882546048de /tests
parentd8ba1a0d9f1f90c250cc2405f87be151ac609968 (diff)
downloadrsyslog-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.cfgtest1
-rw-r--r--tests/Makefile.am6
-rw-r--r--tests/NoExistFile.cfgtest1
-rw-r--r--tests/testsuites/invalid.conf3
-rw-r--r--tests/testsuites/valid.conf3
-rwxr-xr-xtests/validation-run.sh38
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