summaryrefslogtreecommitdiffstats
path: root/tests/complex1.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 16:28:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 16:28:20 +0000
commitdcc721a95bef6f0d8e6d8775b8efe33e5aecd562 (patch)
tree66a2774cd0ee294d019efd71d2544c70f42b2842 /tests/complex1.sh
parentInitial commit. (diff)
downloadrsyslog-dcc721a95bef6f0d8e6d8775b8efe33e5aecd562.tar.xz
rsyslog-dcc721a95bef6f0d8e6d8775b8efe33e5aecd562.zip
Adding upstream version 8.2402.0.upstream/8.2402.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/complex1.sh')
-rwxr-xr-xtests/complex1.sh132
1 files changed, 132 insertions, 0 deletions
diff --git a/tests/complex1.sh b/tests/complex1.sh
new file mode 100755
index 0000000..a51d332
--- /dev/null
+++ b/tests/complex1.sh
@@ -0,0 +1,132 @@
+#!/bin/bash
+# This is a rather complex test that runs a number of features together.
+#
+# added 2010-03-16 by Rgerhards
+#
+# This file is part of the rsyslog project, released under ASL 2.0
+. ${srcdir:=.}/diag.sh init
+skip_platform "SunOS" "This test currently does not work on all flavors of Solaris."
+export NUMMESSAGES=40000
+export RSYSLOG_PORT2="$(get_free_port)"
+export RSYSLOG_PORT3="$(get_free_port)"
+generate_conf
+echo ports: $TCPFLOOD_PORT $RSYSLOG_PORT2 $RSYSLOG_PORT3
+add_conf '
+$MaxMessageSize 10k
+
+$ModLoad ../plugins/imtcp/.libs/imtcp
+$MainMsgQueueTimeoutShutdown 10000
+
+$template outfmt,"%msg:F,58:3%,%msg:F,58:4%,%msg:F,58:5%\n"
+$template dynfile,"'$RSYSLOG_DYNNAME'.out.%inputname%.%msg:F,58:2%.log.Z"
+
+## RULESET with listener
+$Ruleset R13514
+# queue params:
+$ActionQueueTimeoutShutdown 60000
+$ActionQueueTimeoutEnqueue 20000
+$ActionQueueSize 5000
+$ActionQueueSaveOnShutdown on
+$ActionQueueHighWaterMark 4900
+$ActionQueueLowWaterMark 3500
+$ActionQueueType FixedArray
+$ActionQueueWorkerThreads 1
+# action params:
+$OMFileFlushOnTXEnd off
+$OMFileZipLevel 6
+$DynaFileCacheSize 4
+$omfileFlushInterval 1
+*.* ?dynfile;outfmt
+action(type="omfile" file ="'$RSYSLOG_DYNNAME'.countfile")
+# listener
+$InputTCPServerInputName '$TCPFLOOD_PORT'
+$InputTCPServerBindRuleset R13514
+$InputTCPServerRun '$TCPFLOOD_PORT'
+
+
+## RULESET with listener
+$Ruleset R_PORT2
+# queue params:
+$ActionQueueTimeoutShutdown 60000
+$ActionQueueTimeoutEnqueue 20000
+$ActionQueueSize 5000
+$ActionQueueSaveOnShutdown on
+$ActionQueueHighWaterMark 4900
+$ActionQueueLowWaterMark 3500
+$ActionQueueType FixedArray
+$ActionQueueWorkerThreads 1
+# action params:
+$OMFileFlushOnTXEnd off
+$OMFileZipLevel 6
+$OMFileIOBufferSize 256k
+$DynaFileCacheSize 4
+$omfileFlushInterval 1
+*.* ?dynfile;outfmt
+action(type="omfile" file ="'$RSYSLOG_DYNNAME'.countfile")
+# listener
+$InputTCPServerInputName '$RSYSLOG_PORT2'
+$InputTCPServerBindRuleset R_PORT2
+$InputTCPServerRun '$RSYSLOG_PORT2'
+
+
+
+## RULESET with listener
+$Ruleset R_PORT3
+# queue params:
+$ActionQueueTimeoutShutdown 60000
+$ActionQueueTimeoutEnqueue 20000
+$ActionQueueSize 5000
+$ActionQueueSaveOnShutdown on
+$ActionQueueHighWaterMark 4900
+$ActionQueueLowWaterMark 3500
+$ActionQueueType FixedArray
+$ActionQueueWorkerThreads 1
+# action params:
+$OMFileFlushOnTXEnd off
+$OMFileZipLevel 6
+$OMFileIOBufferSize 256k
+$DynaFileCacheSize 4
+$omfileFlushInterval 1
+*.* ?dynfile;outfmt
+action(type="omfile" file ="'$RSYSLOG_DYNNAME'.countfile")
+# listener
+$InputTCPServerInputName '$RSYSLOG_PORT3'
+$InputTCPServerBindRuleset R_PORT3
+$InputTCPServerRun '$RSYSLOG_PORT3'
+'
+
+count_function() {
+ # TODO: try to make this work on the compressed files, only
+ # idea does not work as we miss end-of-zip record
+ # leaving it commented out if we see we should really switch to that
+ # method; if we do not need for an extended period of time, this shall
+ # be removed -- rgerhards, 2018-12-19
+ #mkdir "$RSYSLOG_DYNNAME.countwrk"
+ #cp $RSYSLOG_DYNNAME.out.*.log.Z "$RSYSLOG_DYNNAME.countwrk"
+ #cd "$RSYSLOG_DYNNAME.countwrk"
+ #gunzip $RSYSLOG_DYNNAME.out.*.log.Z
+ #printf '%d' $(cat $RSYSLOG_DYNNAME.out.*.log | wc -l)
+ #cd ..
+ #rm -rf "$RSYSLOG_DYNNAME.countwrk"
+
+ # now the real - simple - code:
+ printf '%d' $(wc -l < $RSYSLOG_DYNNAME.countfile)
+}
+
+startup
+# send 40,000 messages of 400 bytes plus header max, via three dest ports
+export TCPFLOOD_PORT="$TCPFLOOD_PORT:$RSYSLOG_PORT2:$RSYSLOG_PORT3"
+tcpflood -m$NUMMESSAGES -rd400 -P129 -f5 -n3 -c15 -i1
+
+# note: we have FlushOnTX=off, so we will not see the last block inside the file;
+# as such we wait until a "sufficiently large" number of messages has arrived and
+# hope that shutdown_when_empty gets us toward the rest. It's still a bit racy,
+# but should be better than without the wait_file_lines.
+wait_file_lines --delay 1000 --count-function count_function DUMMY-filename $((NUMMESSAGES - 1500))
+shutdown_when_empty
+wait_shutdown
+ls $RSYSLOG_DYNNAME.out.*.log.Z
+gunzip $RSYSLOG_DYNNAME.out.*.log.Z
+cat $RSYSLOG_DYNNAME.out.*.log > $RSYSLOG_OUT_LOG
+seq_check 1 $NUMMESSAGES -E
+exit_test