mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-15 10:30:40 +01:00
Added a imrelp test for big messages (256KB). see also: https://github.com/rsyslog/rsyslog/issues/4158
80 lines
2.0 KiB
Bash
Executable File
80 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# add 2020-02-11 by alorbach, released under ASL 2.0
|
|
TEST_BYTES_EXPECTED=262152
|
|
|
|
. ${srcdir:=.}/diag.sh init
|
|
./have_relpSrvSetOversizeMode
|
|
if [ $? -eq 1 ]; then
|
|
echo "imrelp parameter oversizeMode not available. Test stopped"
|
|
exit 77
|
|
fi;
|
|
generate_conf
|
|
add_conf '
|
|
global(
|
|
workDirectory="'$RSYSLOG_DYNNAME.spool'"
|
|
maxMessageSize="256k"
|
|
)
|
|
module(load="../plugins/imrelp/.libs/imrelp")
|
|
input(
|
|
type="imrelp"
|
|
name="imrelp"
|
|
port="'$TCPFLOOD_PORT'"
|
|
ruleset="print"
|
|
MaxDataSize="260k"
|
|
)
|
|
#input(type="imrelp" port="'$TCPFLOOD_PORT'" maxdatasize="200" oversizeMode="accept")
|
|
|
|
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`
|
|
)
|
|
# action(
|
|
# type="omstdout"
|
|
# template="print_message"
|
|
# )
|
|
}
|
|
|
|
#template(name="outfmt" type="string" string="%msg%\n")
|
|
#:msg, contains, "msgnum:" action(type="omfile" template="outfmt"
|
|
# file=`echo $RSYSLOG_OUT_LOG`)
|
|
|
|
'
|
|
startup
|
|
tcpflood -Trelp-plain -p'$TCPFLOOD_PORT' -m1 -d 262144
|
|
# would also works well:
|
|
# tcpflood -Trelp-plain -p'$TCPFLOOD_PORT' -R 1 -I "imrelp-bigmessage.log"
|
|
shutdown_when_empty # shut down rsyslogd when done processing messages
|
|
wait_shutdown
|
|
|
|
# We need the ^-sign to symbolize the beginning and the $-sign to symbolize the end
|
|
# because otherwise we won't know if it was truncated at the right length.
|
|
|
|
content_check "inputname: imrelp, strlen: 262107, message: msgnum:00000000:262144:"
|
|
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 in $RSYSLOG_OUT_LOG"
|
|
fi
|
|
|
|
exit_test
|