rsyslog/tests/rscript_http_request.sh
Rainer Gerhards 86c1d4a5fb
testbench: improve framework, harden rscript http test
- the test now tries to detect unavailable http server, which
  should not result in test failure
- equivalent valgrind test changed to new methode, removing code
  duplication
- testbench supports
  * new exit code 177, which indicates environment error, makes
    test SKIP but still reports the failure
  * new exitcode, logurl stats reporting fields
  * report buildbot builder (if provided) in failure report
2018-11-06 12:51:46 +01:00

48 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# add 2017-12-01 by Rainer Gerhards, released under ASL 2.0
. ${srcdir:=.}/diag.sh init
rsyslog_testbench_test_url_access http://testbench.rsyslog.com/testbench/echo-get.php
generate_conf
add_conf '
module(load="../plugins/imtcp/.libs/imtcp")
module(load="../plugins/fmhttp/.libs/fmhttp")
input(type="imtcp" port="'$TCPFLOOD_PORT'")
# for debugging the test itself:
#template(name="outfmt" type="string" string="%$!%: :%$.%: %rawmsg%\n")
template(name="outfmt" type="string" string="%$!%\n")
if $msg contains "msgnum:" then {
set $.url = "http://testbench.rsyslog.com/testbench/echo-get.php?content=" & ltrim($msg);
set $!reply = http_request($.url);
action(type="omfile" file=`echo $RSYSLOG_OUT_LOG` template="outfmt")
}
'
startup
tcpflood -m10
wait_file_lines $RSYSLOG_OUT_LOG 10 200
shutdown_when_empty
wait_shutdown
# check for things that look like http failures
if grep -q "DOCTYPE" "$RSYSLOG_OUT_LOG" ; then
printf 'SKIP: looks like we have problems with the upstream http server:\n'
cat -n "$RSYSLOG_OUT_LOG"
printf '\n'
error_exit 177
fi
export EXPECTED='{ "reply": "msgnum:00000000:" }
{ "reply": "msgnum:00000001:" }
{ "reply": "msgnum:00000002:" }
{ "reply": "msgnum:00000003:" }
{ "reply": "msgnum:00000004:" }
{ "reply": "msgnum:00000005:" }
{ "reply": "msgnum:00000006:" }
{ "reply": "msgnum:00000007:" }
{ "reply": "msgnum:00000008:" }
{ "reply": "msgnum:00000009:" }'
cmp_exact $RSYSLOG_OUT_LOG
exit_test