zeek/testing/btest/scripts/base/utils/active-http.test
2023-09-26 12:49:59 +02:00

46 lines
1.2 KiB
Text

# @TEST-REQUIRES: which python3
# @TEST-REQUIRES: which curl
#
# @TEST-PORT: MYPORT
# @TEST-EXEC: btest-bg-run httpd python3 $SCRIPTS/httpd.py --max 2 --addr=127.0.0.1 --port=$(echo $MYPORT | cut -d'/' -f1)
# @TEST-EXEC: sleep 3
# @TEST-EXEC: btest-bg-run zeek zeek -b %INPUT
# @TEST-EXEC: btest-bg-wait 15
# @TEST-EXEC: cat zeek/.stdout | sort >output
# @TEST-EXEC: btest-diff output
@load base/utils/active-http
redef exit_only_after_terminate = T;
global PORT: string = split_string1(getenv("MYPORT"), /\//)[0];
global REMOTE: string = cat("127.0.0.1:", PORT);
global c: count = 0;
function check_exit_condition()
{
c += 1;
if ( c == 3 )
terminate();
}
function test_request(label: string, req: ActiveHTTP::Request)
{
when [label, req] ( local response = ActiveHTTP::request(req) )
{
print label, response;
check_exit_condition();
}
timeout 1min
{
print "HTTP request timeout";
check_exit_condition();
}
}
event zeek_init()
{
test_request("test1", [ $url=REMOTE ]);
test_request("test2", [ $url=cat(REMOTE, "/empty"), $method="POST" ]);
test_request("test3", [ $url=REMOTE, $method="POST 123" ]); # will be rejected and not execute request
}