mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
46 lines
1.2 KiB
Text
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
|
|
}
|