mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-19 15:00:43 +01:00
changes some of the test commands to use bash functions includes some small bug fixes to tests where bugs were previously not seen due to different plumbing.
64 lines
1.8 KiB
Bash
Executable File
64 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Tests for processing of partial lines in read mode 0
|
|
# This is part of the rsyslog testbench, licensed under ASL 2.0
|
|
. $srcdir/diag.sh init
|
|
generate_conf
|
|
add_conf '
|
|
module(load="../plugins/imfile/.libs/imfile")
|
|
input(type="imfile" File="./rsyslog.input" Tag="file:" ReadMode="0")
|
|
|
|
template(name="outfmt" type="list") {
|
|
constant(value="HEADER ")
|
|
property(name="msg" format="json")
|
|
constant(value="\n")
|
|
}
|
|
|
|
if $msg contains "msgnum:" then
|
|
action(type="omfile" file="rsyslog.out.log" template="outfmt")
|
|
'
|
|
startup_vg
|
|
|
|
printf 'msgnum:0
|
|
msgnum:1' > rsyslog.input
|
|
printf '\nmsgnum:2' >> rsyslog.input
|
|
|
|
# sleep a little to give rsyslog a chance to process unterminated linet
|
|
./msleep 500
|
|
|
|
# write some more lines (see https://github.com/rsyslog/rsyslog/issues/144)
|
|
printf 'msgnum:3
|
|
msgnum:4' >> rsyslog.input
|
|
printf '\nmsgnum:5' >> rsyslog.input # this one shouldn't be written to the output file because of missing LF
|
|
|
|
shutdown_when_empty # shut down rsyslogd when done processing messages
|
|
wait_shutdown_vg # we need to wait until rsyslogd is finished!
|
|
. $srcdir/diag.sh check-exit-vg
|
|
|
|
## check if we have the correct number of messages
|
|
NUMLINES=$(grep -c HEADER rsyslog.out.log 2>/dev/null)
|
|
|
|
if [ -z $NUMLINES ]; then
|
|
echo "ERROR: expecting at least a match for HEADER, maybe rsyslog.out.log wasn't even written?"
|
|
cat rsyslog.out.log
|
|
error_exit 1
|
|
else
|
|
if [ ! $NUMLINES -eq 4 ]; then
|
|
echo "ERROR: expecting 4 headers, got $NUMLINES"
|
|
cat rsyslog.out.log
|
|
error_exit 1
|
|
fi
|
|
fi
|
|
|
|
## check if all the data we expect to get in the file is there
|
|
for i in {1..4}; do
|
|
grep msgnum:$i rsyslog.out.log > /dev/null 2>&1
|
|
if [ ! $? -eq 0 ]; then
|
|
echo "ERROR: expecting the string 'msgnum:$i', it's not there"
|
|
cat rsyslog.out.log
|
|
error_exit 1
|
|
fi
|
|
done
|
|
|
|
|
|
exit_test
|