# @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 }