mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-15 10:30:40 +01:00
71 lines
2.2 KiB
Bash
Executable File
71 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# This file is part of the rsyslog project, released under ASL 2.0
|
|
. ${srcdir:=.}/diag.sh init
|
|
. $srcdir/omamqp1-common.sh
|
|
|
|
AMQP_URL=${AMQP_URL:-"localhost:5672"}
|
|
NUMMESSAGES=10240
|
|
|
|
generate_conf
|
|
if [ "${USE_VALGRIND:-}" = YES ] ; then
|
|
add_conf '
|
|
global(debug.unloadModules="off")
|
|
'
|
|
fi
|
|
add_conf '
|
|
template(name="tpl" type="string"
|
|
string="{\"msgnum\":\"%msg:F,58:2%\"}")
|
|
|
|
module(load="../plugins/impstats/.libs/impstats" interval="1"
|
|
log.file="'"$RSYSLOG_DYNNAME.spool"'/stats.log" log.syslog="off" format="cee")
|
|
module(load="../contrib/omamqp1/.libs/omamqp1")
|
|
|
|
if $msg contains "msgnum:" then
|
|
action(type="omamqp1"
|
|
host="'"$AMQP_URL"'"
|
|
target="amq.rsyslogtest")
|
|
'
|
|
qdrouterd > $RSYSLOG_DYNNAME.spool/qdrouterd.log 2>&1 & qdrouterdpid=$!
|
|
sleep 5 # give qdrouterd a chance to start up and listen
|
|
# have to start reader before writer - like a pipe - for the client, NUMMESSAGES could
|
|
# be much less than the number of records if batching is used - for the client, it means
|
|
# batches, not records - but there can't be more batches than records
|
|
amqp_simple_recv $AMQP_URL amq.rsyslogtest $NUMMESSAGES > $RSYSLOG_DYNNAME.spool/amqp_simple_recv.out 2>&1 &
|
|
#export RSYSLOG_DEBUG=debug
|
|
#export RSYSLOG_DEBUGLOG=/tmp/rsyslog.debug.log
|
|
startup
|
|
if [ -n "${USE_GDB:-}" ] ; then
|
|
echo attach gdb here
|
|
sleep 54321 || :
|
|
fi
|
|
injectmsg 0 $NUMMESSAGES
|
|
shutdown_when_empty
|
|
wait_shutdown
|
|
|
|
timeout=60
|
|
for ii in $( seq 1 $timeout ) ; do
|
|
if grep -q "msgnum:00*$(( NUMMESSAGES - 1 ))" $RSYSLOG_DYNNAME.spool/amqp_simple_recv.out ; then
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
kill $qdrouterdpid > /dev/null 2>&1 || kill -9 $qdrouterdpid > /dev/null 2>&1 || :
|
|
# you would think there would be a better way to do this . . .
|
|
kill $( pgrep -f 'python.*simple_recv.py' )
|
|
if [ $ii = $timeout ] ; then
|
|
echo ERROR: amqp_simple_recv did not receive all $NUMMESSAGES messages in $timeout seconds
|
|
error_exit 1
|
|
fi
|
|
|
|
$PYTHON -c 'import sys
|
|
inp = file(sys.argv[1],"r").read()
|
|
last = 0
|
|
idx = inp.find("msgnum:",last)
|
|
while idx > -1:
|
|
msgstr = inp[(idx+7):(idx+15)]
|
|
print msgstr
|
|
last = idx+16
|
|
idx = inp.find("msgnum:",last)
|
|
' $RSYSLOG_DYNNAME.spool/amqp_simple_recv.out > $RSYSLOG_OUT_LOG
|
|
seq_check
|