rsyslog/tests/sndrcv_gzip.sh
Rainer Gerhards 6cb60302c5
testbench: improve robustness against slow CI, gen. improvements
* add an overall timeout value for tests - if running longer,
  testbench framework tries to FAIL and end test. Note that
  this is not bullet-proof and not intended to be so.
* guard against hanging rsyslog instances via a new imdiag
  feature to abort after n number of seconds; among others,
  this guards as against timeout-cancel in CI, which is always
  pretty hard to diagnose - now we see these errors in test-suite.log
* fix a bug in tcp zip test, which actually did not use zip mode
* experimnentalls add debug output to better understand
  shutdown_when_empty operation; goal is to improve understanding
  and then remove that code again.
* improve shutdown predicate for a couple of tests
* made travis run make check with two parallel threads, for which
  we seem ready now. Nevertheless, it's still experimental and we
  may roll this back if required.
2018-12-28 13:03:57 +01:00

54 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# This test is similar to tcpsndrcv, but it forwards messages in
# zlib-compressed format (our own syslog extension).
# rgerhards, 2009-11-11
# This file is part of the rsyslog project, released under ASL 2.0
. ${srcdir:=.}/diag.sh init
export NUMMESSAGES=50000
empty_check() {
if [ $(wc -l < "$RSYSLOG_OUT_LOG") -eq $NUMMESSAGES ]; then
return 0
fi
return 1
}
export QUEUE_EMPTY_CHECK_FUNC=empty_check
#export RSYSLOG_DEBUG="debug nostdout noprintmutexaction"
export RSYSLOG_DEBUGLOG="log"
export RCVR_PORT="$(get_free_port)"
generate_conf
add_conf '
$ModLoad ../plugins/imtcp/.libs/imtcp
# then SENDER sends to this port (not tcpflood!)
$InputTCPServerRun '$RCVR_PORT'
$template outfmt,"%msg:F,58:2%\n"
$template dynfile,"'$RSYSLOG_OUT_LOG'" # trick to use relative path names!
:msg, contains, "msgnum:" ?dynfile;outfmt
'
startup
export RSYSLOG_DEBUGLOG="log2"
#valgrind="valgrind"
generate_conf 2
add_conf '
$ModLoad ../plugins/imtcp/.libs/imtcp
$InputTCPServerRun '$TCPFLOOD_PORT'
*.* @@(z5)127.0.0.1:'$RCVR_PORT'
' 2
startup 2
# now inject the messages into instance 2. It will connect to instance 1,
# and that instance will record the data.
tcpflood -m$NUMMESSAGES
# shut down sender when everything is sent, receiver continues to run concurrently
shutdown_when_empty 2
wait_shutdown 2
# now it is time to stop the receiver as well
shutdown_when_empty
wait_shutdown
seq_check
exit_test