summaryrefslogtreecommitdiffstats
path: root/tests/zstd.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/zstd.sh')
-rwxr-xr-xtests/zstd.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/zstd.sh b/tests/zstd.sh
new file mode 100755
index 0000000..a109644
--- /dev/null
+++ b/tests/zstd.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# This tests writing large data records in zst mode. We use up to 10K
+# record size.
+#
+# added 2022-06-21 by Rgerhards
+#
+# This file is part of the rsyslog project, released under ASL 2.0
+. ${srcdir:=.}/diag.sh init
+export NUMMESSAGES=${NUMMESSAGES:-50000}
+export QUEUE_EMPTY_CHECK_FUNC=wait_seq_check
+generate_conf
+# Note: we right now use the non-compressed file as indicator for "processing complete"
+#export SEQ_CHECK_FILE=$RSYSLOG_OUT_LOG.zst
+add_conf '
+$MaxMessageSize 10k
+$MainMsgQueueTimeoutShutdown 10000
+
+module(load="builtin:omfile" compression.driver="zstd" compression.zstd.workers="5")
+module(load="../plugins/imptcp/.libs/imptcp")
+input(type="imptcp" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.tcpflood_port")
+
+template(name="outfmt" type="string" string="%msg:F,58:2%,%msg:F,58:3%,%msg:F,58:4%\n")
+local0.* action(type="omfile" file="'$RSYSLOG_OUT_LOG'.zst" template="outfmt"
+ zipLevel="20" iobuffersize="64k" veryRobustZIP="off")
+local0.* action(type="omfile" file="'$RSYSLOG_OUT_LOG'" template="outfmt")
+'
+# rgerhards, 2019-08-14: Note: veryRobustZip may need to be "on". Do this if the test
+# still prematurely terminates. In that case it is likely that gunzip got confused
+# by the missing zip close record. My initial testing shows that while gunzip emits an
+# error message, everything is properly extracted. Only stressed CI runs will show how
+# it works in reality.
+startup
+assign_tcpflood_port $RSYSLOG_DYNNAME.tcpflood_port
+tcpflood -m$NUMMESSAGES -r -d10000 -P129
+shutdown_when_empty
+wait_shutdown
+seq_check 0 $((NUMMESSAGES - 1)) -E
+exit_test