summaryrefslogtreecommitdiffstats
path: root/tests/imrelp-sessionbreak-vg.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/imrelp-sessionbreak-vg.sh')
-rwxr-xr-xtests/imrelp-sessionbreak-vg.sh74
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/imrelp-sessionbreak-vg.sh b/tests/imrelp-sessionbreak-vg.sh
new file mode 100755
index 0000000..076c771
--- /dev/null
+++ b/tests/imrelp-sessionbreak-vg.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+# added 2020-04-10 by alorbach, released under ASL 2.0
+. ${srcdir:=.}/diag.sh init
+export NUMMESSAGES=1000000
+export USE_VALGRIND="YES"
+# TODO remote leak check skip and fix memory leaks caused by session break
+export RS_TESTBENCH_LEAK_CHECK=no
+
+mkdir $RSYSLOG_DYNNAME.workdir
+generate_conf
+add_conf '
+module(load="../plugins/imrelp/.libs/imrelp")
+
+global(
+ workDirectory="'$RSYSLOG_DYNNAME.workdir'"
+ maxMessageSize="256k"
+)
+main_queue(queue.type="Direct")
+
+$LocalHostName test
+$AbortOnUncleanConfig on
+$PreserveFQDN on
+
+input( type="imrelp"
+ name="imrelp"
+ port="'$TCPFLOOD_PORT'"
+ ruleset="spool"
+ MaxDataSize="256k"
+ KeepAlive="on"
+)
+template(name="outfmt" type="string" string="%msg:F,58:2%\n")
+
+ruleset(name="spool" queue.type="direct") {
+ if $msg contains "msgnum:" then {
+ action(type="omfile" file=`echo $RSYSLOG_OUT_LOG` template="outfmt")
+ }
+}
+'
+startup
+# How many tcpfloods we run at the same tiem
+for ((i=1;i<=5;i++)); do
+ # How many times tcpflood runs in each threads
+ ./tcpflood -Trelp-plain -p$TCPFLOOD_PORT -m$NUMMESSAGES -s &
+ tcpflood_pid=$!
+
+ echo "started tcpflood instance $i (PID $tcpflood_pid)"
+
+ # Give it time to actually connect
+ ./msleep 500;
+
+ kill -9 $tcpflood_pid # >/dev/null 2>&1;
+ echo "killed tcpflood instance $i (PID $tcpflood_pid)"
+done;
+
+wait_queueempty
+
+netstatresult=$(netstat --all --program 2>&1 | grep "ESTABLISHED" | grep $(cat $RSYSLOG_PIDBASE.pid) | grep $TCPFLOOD_PORT)
+openfd=$(ls -l "/proc/$(cat $RSYSLOG_PIDBASE$1.pid)/fd" | wc -l)
+
+shutdown_when_empty
+wait_shutdown
+
+if [[ "$netstatresult" == "" ]]
+then
+ echo "OK!"
+else
+ echo "STILL OPENED Connections: "
+ echo $netstatresult
+ echo "Open files at the end: "
+ echo $openfd
+ error_exit 1
+fi
+
+exit_test