mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-16 11:00:41 +01:00
The test was timing-sensitive as we did not properly check all data was output to the output file - we just relied on sleep periods. This has been changed. Also, we made some changes to the testing framework to fully support sequence checking of multiple ZIP files.
53 lines
2.2 KiB
Bash
Executable File
53 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# This tests writing large data records in gzip mode. We also write it to
|
|
# 5 different dynafiles, with a dynafile cache size set to 4. So this stresses
|
|
# both the input side, as well as zip writing, async writing and the dynafile
|
|
# cache logic.
|
|
#
|
|
# This test is a bit timing-dependent on the tcp reception side, so if it fails
|
|
# one may look into the timing first. The main issue is that the testbench
|
|
# currently has no good way to know if the tcp receiver is finished. This is NOT
|
|
# a problem in rsyslogd, but only of the testbench.
|
|
#
|
|
# Note that we do not yet have sufficient support for dynafiles in diag.sh,
|
|
# so we mangle some files here manually.
|
|
#
|
|
# added 2010-03-10 by Rgerhards
|
|
#
|
|
# This file is part of the rsyslog project, released under ASL 2.0
|
|
. ${srcdir:=.}/diag.sh init
|
|
skip_platform "SunOS" "FIXME: this test does not work on Solaris because of what looks like a BUG! It is just disabled here so that we can gain the benefits of a better test on other platforms. Bug on solaris must be addressed"
|
|
combine_files() {
|
|
gunzip -c < $RSYSLOG_DYNNAME.out.0.log > $RSYSLOG_OUT_LOG
|
|
gunzip -c < $RSYSLOG_DYNNAME.out.1.log >> $RSYSLOG_OUT_LOG
|
|
gunzip -c < $RSYSLOG_DYNNAME.out.2.log >> $RSYSLOG_OUT_LOG
|
|
gunzip -c < $RSYSLOG_DYNNAME.out.3.log >> $RSYSLOG_OUT_LOG
|
|
gunzip -c < $RSYSLOG_DYNNAME.out.4.log >> $RSYSLOG_OUT_LOG
|
|
}
|
|
export NUMMESSAGES=4000
|
|
export QUEUE_EMPTY_CHECK_FUNC=wait_seq_check
|
|
export PRE_SEQ_CHECK_FUNC=combine_files
|
|
export SEQ_CHECK_FILE=$RSYSLOG_OUT_LOG
|
|
export SEQ_CHECK_OPTIONS=-E
|
|
generate_conf
|
|
add_conf '
|
|
global(MaxMessageSize="10k")
|
|
module(load="../plugins/imtcp/.libs/imtcp")
|
|
input(type="imtcp" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.tcpflood_port")
|
|
|
|
$template outfmt,"%msg:F,58:3%,%msg:F,58:4%,%msg:F,58:5%\n"
|
|
$template dynfile,"'$RSYSLOG_DYNNAME'.out.%msg:F,58:2%.log" # use multiple dynafiles
|
|
local0.* action(type="omfile" template="outfmt"
|
|
zipLevel="6" ioBufferSize="256k" veryRobustZip="on"
|
|
flushOnTXEnd="off" flushInterval="1"
|
|
asyncWriting="on" dynaFileCacheSize="4"
|
|
dynafile="dynfile")
|
|
'
|
|
startup
|
|
# send messages of 10.000bytes plus header max, randomized
|
|
tcpflood -m$NUMMESSAGES -r -d10000 -P129 -f5
|
|
shutdown_when_empty
|
|
wait_shutdown
|
|
seq_check
|
|
exit_test
|