rsyslog/tests/json_var_cmpr.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

39 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# added 2015-11-24 by portant
# This file is part of the rsyslog project, released under ASL 2.0
echo =============================================================================================
echo \[json_var_case.sh\]: test for referencing local and global variables properly in comparisons
. ${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")
# we must make sure the template contains references to the variables
template(name="outfmt" type="string" string="json prop:%$!val% local prop:%$.val% global prop:%$/val%\n")
action(type="mmjsonparse")
set $.val = "123";
set $.rval = "123";
if ($.val == $.rval) then {
set $.val = "def";
}
set $/val = "123";
set $/rval = "123";
if ($/val == $/rval) then {
set $/val = "ghi";
}
action(type="omfile" file=`echo $RSYSLOG_OUT_LOG` template="outfmt")
'
startup
tcpflood -m 1 -M "\"<167>Nov 6 12:34:56 172.0.0.1 test: @cee: { \\\"val\\\": \\\"abc\\\" }\""
echo doing shutdown
shutdown_when_empty
echo wait on shutdown
wait_shutdown
content_check "json prop:abc local prop:def global prop:ghi"
exit_test