rsyslog/tests/manytcp.sh
Rainer Gerhards fd4be6b3b7
tcpsrv bugfix: input name was not properly propagated
As a result, it did not show up in pstats. Alos, we now use the input name
in worker thread to easily identify where they belong to. As thread names
have very limited length, the thread naming now is
"w<worker-number>/<input-name>".
2025-04-16 09:55:20 +02:00

29 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# test many concurrent tcp connections
. ${srcdir:=.}/diag.sh init
skip_platform "FreeBSD" "This test currently does not work on FreeBSD"
skip_platform "SunOS" "timing on connection establishment is different on solaris and makes this test fail"
export NUMMESSAGES=40000
export QUEUE_EMPTY_CHECK_FUNC=wait_file_lines
generate_conf
add_conf '
$MaxOpenFiles 2100
module(load="../plugins/imtcp/.libs/imtcp" maxSessions="2100")
input(type="imtcp" name="test-input"
socketBacklog="2000" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.tcpflood_port" workerthreads="8")
$template outfmt,"%msg:F,58:2%\n"
template(name="dynfile" type="string" string=`echo $RSYSLOG_OUT_LOG`) # trick to use relative path names!
:msg, contains, "msgnum:" ?dynfile;outfmt
'
startup
# we first send a single message so that the output file is opened. Otherwise, we may
# use up all file handles for tcp connections and so the output file could eventually
# not be opened. 2019-03-18 rgerhards
tcpflood -m1
tcpflood -c-2000 -i1 -m $((NUMMESSAGES - 1 ))
shutdown_when_empty
wait_shutdown
seq_check
exit_test