summaryrefslogtreecommitdiffstats
path: root/tests/json_var_cmpr.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/json_var_cmpr.sh')
-rwxr-xr-xtests/json_var_cmpr.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/json_var_cmpr.sh b/tests/json_var_cmpr.sh
new file mode 100755
index 0000000..ee21be8
--- /dev/null
+++ b/tests/json_var_cmpr.sh
@@ -0,0 +1,38 @@
+#!/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