rsyslog/tests/mmjsonparse_extra_data-vg.sh
Rainer Gerhards 42a8051ad9
testbench: make most tests use a port file and assign listen port 0
This makes the test much more robust against heavily loaded test
systems.
2019-08-16 17:31:52 +02:00

32 lines
980 B
Bash
Executable File

#!/bin/bash
# ensure mmjsonparse works correctly if passed unparsable message
# add 2018-11-05 by Rainer Gerhards, released under ASL 2.0
. ${srcdir:=.}/diag.sh init
generate_conf
add_conf '
module(load="../plugins/mmjsonparse/.libs/mmjsonparse")
module(load="../plugins/imtcp/.libs/imtcp")
input(type="imtcp" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.tcpflood_port")
template(name="outfmt" type="string" string="-%msg%-\n")
action(type="mmjsonparse" cookie="")
if $parsesuccess == "OK" then {
action(type="omfile" file="'$RSYSLOG_OUT_LOG'" template="outfmt")
}
else if $parsesuccess == "FAIL" and $msg contains "param1" then {
action(type="omfile" file="'$RSYSLOG2_OUT_LOG'" template="outfmt")
}
'
startup_vg
tcpflood -m2 -M "\"{\\\"param1\\\":\\\"value1\\\"} data\""
shutdown_when_empty
wait_shutdown_vg
check_exit_vg
check_file_not_exists $RSYSLOG_OUT_LOG
export EXPECTED='-{"param1":"value1"} data-
-{"param1":"value1"} data-'
cmp_exact $RSYSLOG2_OUT_LOG
exit_test