summaryrefslogtreecommitdiffstats
path: root/tests/cfg.sh
blob: fb22fbf3b520c4f99a6e16a867f19b5128177a90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# /bin/bash
# This is a simple shell script that carries out some checks against
# configurations we expect from some provided config files. We use
# rsyslogd's verifcation function. Note that modifications to the
# config elements, or even simple text changes, cause these checks to
# fail. However, it should be fairly easy to adapt them to the changed
# environment. And while nothing changed, they permit is to make sure
# that everything works well and is not broken by interim changes.
# Note that we always compare starting with the second output line.
# This is because the first line contains the rsyslog version ;)
# rgerhards, 2008-07-29
#
# Part of the testbench for rsyslog.
#
# Copyright 2008 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
rm -f tmp
echo "local directory"
#
# check empty config file
#
../tools/rsyslogd -c4 -N1 -f/dev/null 2>&1 |tail --lines=+2 > tmp
cmp tmp $srcdir/DevNull.cfgtest
if [ ! $? -eq 0 ]; then
echo "DevNull.cfgtest failed"
echo "Expected:"
cat $srcdir/DevNull.cfgtest
echo "Received:"
cat tmp
exit 1
else
echo "DevNull.cfgtest succeeded"
fi;
#
# check missing config file
#
../tools/rsyslogd -c4 -N1 -f/This/does/not/exist 2>&1 |tail --lines=+2 > tmp
cmp tmp $srcdir/NoExistFile.cfgtest
if [ ! $? -eq 0 ]; then
echo "NoExistFile.cfgtest failed"
echo "Expected:"
cat $srcdir/NoExistFile.cfgtest
echo "Received:"
cat tmp
exit 1
else
echo "NoExistFile.cfgtest succeeded"
fi;


# TODO: re-enable the following checks. They need to have support in
# rsyslogd so that the log file name is NOT contained in the error
# messages - this prevents proper comparison in make distcheck
rm -f tmp
exit 0

#
# check config with invalid directive
#
../tools/rsyslogd -c4 -u2 -N1 -f$srcdir/cfg1.testin 2>&1 |tail --lines=+2 > tmp
cmp tmp $srcdir/cfg1.cfgtest
if [ ! $? -eq 0 ]; then
echo "cfg1.cfgtest failed"
echo "Expected:"
cat $srcdir/cfg1.cfgtest
echo "Received:"
cat tmp
exit 1
else
echo "cfg1.cfgtest succeeded"
fi;
#
# now check for included config file. We use a sample similar to
# the one with the invalid config directive, so that we may see
# an effect of the included config ;)
#
../tools/rsyslogd -c4 -u2 -N1 -f$srcdir/cfg2.testin 2>&1 |tail --lines=+2 > tmp
cmp tmp $srcdir/cfg2.cfgtest
if [ ! $? -eq 0 ]; then
echo "cfg2.cfgtest failed"
echo "Expected:"
cat $srcdir/cfg2.cfgtest
echo "Received:"
cat tmp
exit 1
else
echo "cfg2.cfgtest succeeded"
fi;
#
# check included config file, where included file does not exist
#
../tools/rsyslogd -c4 -u2 -N1 -f$srcdir/cfg3.testin 2>&1 |tail --lines=+2 > tmp
cmp tmp $srcdir/cfg3.cfgtest
if [ ! $? -eq 0 ]; then
echo "cfg3.cfgtest failed"
echo "Expected:"
cat $srcdir/cfg3.cfgtest
echo "Received:"
cat tmp
exit 1
else
echo "cfg3.cfgtest succeeded"
fi;
#
# check a reasonable complex, but correct, log file
#
../tools/rsyslogd -c4 -u2 -N1 -f$srcdir/cfg4.testin 2>&1 |tail --lines=+2 > tmp
cmp tmp $srcdir/cfg4.cfgtest
if [ ! $? -eq 0 ]; then
echo "cfg4.cfgtest failed"
echo "Expected:"
cat $srcdir/cfg4.cfgtest
echo "Received:"
cat tmp
exit 1
else
echo "cfg4.cfgtest succeeded"
fi;
# 
# done, some cleanup
#
rm -f tmp