diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 16:28:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 16:28:20 +0000 |
commit | dcc721a95bef6f0d8e6d8775b8efe33e5aecd562 (patch) | |
tree | 66a2774cd0ee294d019efd71d2544c70f42b2842 /tests/omprog-feedback-mt.sh | |
parent | Initial commit. (diff) | |
download | rsyslog-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 '')
-rwxr-xr-x | tests/omprog-feedback-mt.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/omprog-feedback-mt.sh b/tests/omprog-feedback-mt.sh new file mode 100755 index 0000000..1fdc6d9 --- /dev/null +++ b/tests/omprog-feedback-mt.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# This file is part of the rsyslog project, released under ASL 2.0 + +# Similar to the 'omprog-feedback.sh' test, with multiple worker threads +# on high load, and a given error rate (percentage of failed messages, i.e. +# confirmed as failed by the program). Note: the action retry interval +# (1 second) causes a very low throughput; we need to set a very low error +# rate to avoid the test lasting too much. +. ${srcdir:=.}/diag.sh init +skip_platform "SunOS" "On Solaris, this test causes rsyslog to hang for unknown reasons" +if [ "$CC" == "gcc" ] && [[ "$CFLAGS" == *"-coverage"* ]]; then + printf 'This test does not work with gcc coverage instrumentation\n' + printf 'It will hang, but we do not know why. See\n' + printf 'https://github.com/rsyslog/rsyslog/issues/3361\n' + exit 77 +fi + +NUMMESSAGES=10000 # number of logs to send +ERROR_RATE_PERCENT=1 # percentage of logs to be retried + +export command_line="$srcdir/testsuites/omprog-feedback-mt-bin.sh $ERROR_RATE_PERCENT" + +generate_conf +add_conf ' +module(load="../plugins/omprog/.libs/omprog") + +template(name="outfmt" type="string" string="%msg%\n") + +main_queue( + queue.timeoutShutdown="30000" # long shutdown timeout for the main queue +) + +:msg, contains, "msgnum:" { + action( + type="omprog" + binary=`echo $command_line` + template="outfmt" + name="omprog_action" + confirmMessages="on" + queue.type="LinkedList" # use a dedicated queue + queue.workerThreads="10" # ...with multiple workers + queue.size="10000" # ...high capacity (default is 1000) + queue.timeoutShutdown="60000" # ...and a long shutdown timeout + action.resumeInterval="1" # retry interval: 1 second + ) +} +' +startup +injectmsg 0 $NUMMESSAGES +wait_file_lines --abort-on-oversize "$RSYSLOG_OUT_LOG" $NUMMESSAGES +shutdown_when_empty +wait_shutdown +exit_test |