mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-15 10:30:40 +01:00
When "discardTruncatedMsg" is enabled in imtcp, messages were incorrectly skipped if the last character before the truncation was the LFdelimiter. Add two tests for octet stuffing and framing. closes: https://github.com/rsyslog/rsyslog/issues/4281
65 lines
1.5 KiB
Bash
Executable File
65 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# add 2020-05-14 by alorbach, released under ASL 2.0
|
|
export NUMMESSAGES=10
|
|
export TEST_BYTES_SENDSIZE=4037
|
|
export TEST_BYTES_EXPECTED=$(((TEST_BYTES_SENDSIZE/2 - 420) * NUMMESSAGES)) # 262152
|
|
. ${srcdir:=.}/diag.sh init
|
|
|
|
generate_conf
|
|
add_conf '
|
|
global(
|
|
workDirectory="'$RSYSLOG_DYNNAME.spool'"
|
|
maxMessageSize="4k"
|
|
)
|
|
module( load="../plugins/imtcp/.libs/imtcp"
|
|
MaxSessions="10000"
|
|
discardTruncatedMsg="on"
|
|
)
|
|
input(
|
|
type="imtcp"
|
|
name="imtcp"
|
|
port="'$TCPFLOOD_PORT'"
|
|
ruleset="print"
|
|
)
|
|
|
|
template(name="print_message" type="list"){
|
|
constant(value="inputname: ")
|
|
property(name="inputname")
|
|
constant(value=", strlen: ")
|
|
property(name="$!strlen")
|
|
constant(value=", message: ")
|
|
property(name="msg")
|
|
constant(value="\n")
|
|
}
|
|
ruleset(name="print") {
|
|
set $!strlen = strlen($msg);
|
|
action(
|
|
type="omfile" template="print_message"
|
|
file=`echo $RSYSLOG_OUT_LOG`
|
|
)
|
|
}
|
|
'
|
|
startup
|
|
tcpflood -p'$TCPFLOOD_PORT' -m$NUMMESSAGES -d $TEST_BYTES_SENDSIZE -O
|
|
|
|
shutdown_when_empty # shut down rsyslogd when done processing messages
|
|
wait_shutdown
|
|
|
|
content_count_check --regex "inputname: imtcp, strlen:" ${NUMMESSAGES}
|
|
|
|
count=$(wc -c < $RSYSLOG_OUT_LOG)
|
|
if [ $count -lt $TEST_BYTES_EXPECTED ]; then
|
|
echo
|
|
echo "FAIL: expected bytes count $count did not match $TEST_BYTES_EXPECTED. "
|
|
echo
|
|
echo "First 100 bytes of $RSYSLOG_OUT_LOG are: "
|
|
head -c 100 $RSYSLOG_OUT_LOG
|
|
echo
|
|
echo "Last 100 bytes of $RSYSLOG_OUT_LOG are: "
|
|
tail -c 100 $RSYSLOG_OUT_LOG
|
|
error_exit 1
|
|
else
|
|
echo "Found $count bytes (Expected $TEST_BYTES_EXPECTED) in $RSYSLOG_OUT_LOG"
|
|
fi
|
|
|
|
exit_test |