mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-15 12:50:41 +01:00
modernize them, reduce robustness against slow machines, provide some test framework functional enhancements and optimizie some tests
43 lines
1.9 KiB
Bash
Executable File
43 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# test many concurrent tcp connections
|
|
# released under ASL 2.0
|
|
. ${srcdir:=.}/diag.sh init
|
|
skip_platform "FreeBSD" "This test does not work on FreeBSD"
|
|
export NUMMESSAGES=40000 # we unfortunately need many messages as we have many connections
|
|
export TB_TEST_MAX_RUNTIME=1800 # this test is VERY slow, so we need to override max runtime
|
|
generate_conf
|
|
add_conf '
|
|
$MaxOpenFiles 200
|
|
global(
|
|
defaultNetstreamDriverCAFile="'$srcdir'/testsuites/x.509/ca.pem"
|
|
defaultNetstreamDriverCertFile="'$srcdir'/testsuites/x.509/client-cert.pem"
|
|
defaultNetstreamDriverKeyFile="'$srcdir'/testsuites/x.509/client-key.pem"
|
|
defaultNetstreamDriver="gtls"
|
|
debug.whitelist="on"
|
|
debug.files=["nsd_ossl.c", "tcpsrv.c", "nsdsel_ossl.c", "nsdpoll_ptcp.c", "dnscache.c"]
|
|
)
|
|
|
|
module(load="../plugins/imtcp/.libs/imtcp" maxSessions="1100"
|
|
streamDriver.mode="1" streamDriver.authMode="anon")
|
|
input(type="imtcp" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.tcpflood_port")
|
|
|
|
$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_vg
|
|
# the config file specifies exactly 1100 connections
|
|
tcpflood -c1000 -m$NUMMESSAGES -Ttls -x$srcdir/testsuites/x.509/ca.pem -Z$srcdir/testsuites/x.509/client-cert.pem -z$srcdir/testsuites/x.509/client-key.pem
|
|
# the sleep below is needed to prevent too-early termination of the tcp listener
|
|
# note: this must not be precise, as message loss is acceptable
|
|
sleep 5
|
|
shutdown_when_empty
|
|
wait_shutdown_vg
|
|
check_exit_vg
|
|
# we do not do a seq check, as of the design of this test some messages
|
|
# will be lost. So there is no point in checking if all were received. The
|
|
# point is that we look at the valgrind result, to make sure we do not
|
|
# have a mem leak in those error cases (we had in the past, thus the test
|
|
# to prevent that in the future).
|
|
exit_test
|