From 58daab21cd043e1dc37024a7f99b396788372918 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 9 Mar 2024 14:19:48 +0100 Subject: Merging upstream version 1.44.3. Signed-off-by: Daniel Baumann --- web/server/h2o/libh2o/t/50status.t | 88 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 web/server/h2o/libh2o/t/50status.t (limited to 'web/server/h2o/libh2o/t/50status.t') diff --git a/web/server/h2o/libh2o/t/50status.t b/web/server/h2o/libh2o/t/50status.t new file mode 100644 index 000000000..64adf9604 --- /dev/null +++ b/web/server/h2o/libh2o/t/50status.t @@ -0,0 +1,88 @@ +use strict; +use warnings; +use Test::More; +use t::Util; +use JSON; + +plan skip_all => 'curl not found' + unless prog_exists('curl'); + +subtest "default json handler" => sub { + my $server = spawn_h2o(<< "EOT"); +hosts: + default: + paths: + /: + file.dir: @{[ DOC_ROOT ]} + /s: + status: ON +EOT + + my $resp = `curl --silent -o /dev/stderr http://127.0.0.1:$server->{port}/s/json 2>&1 > /dev/null`; + my $jresp = decode_json("$resp"); + my @requests = @{$jresp->{'requests'}}; + is $jresp->{'connections'}, 1, "One connection"; + is scalar @requests, 1, "One request"; +}; + +subtest "json hander without requests" => sub { + my $server = spawn_h2o(<< "EOT"); +hosts: + default: + paths: + /: + file.dir: @{[ DOC_ROOT ]} + /s: + status: ON +EOT + + my $resp = `curl --silent -o /dev/stderr 'http://127.0.0.1:$server->{port}/s/json?show=main,events' 2>&1 > /dev/null`; + my $jresp = decode_json("$resp"); + is $jresp->{'connections'}, 1, "One connection"; + is $jresp->{'requests'}, undef, "Requests not present"; + is $jresp->{'status-errors.404'}, 0, "Internal errors monitoring"; +}; + +subtest "json hander check 404 error counter" => sub { + my $server = spawn_h2o(<< "EOT"); +hosts: + default: + paths: + /: + file.dir: @{[ DOC_ROOT ]} + /s: + status: ON +EOT + my $resp = `curl --silent -o /dev/stderr 'http://127.0.0.1:$server->{port}/beeb98fcf148317be5fe5d763c658bc9ea9c087a' 2>&1 > /dev/null`; + my $resp = `curl --silent -o /dev/stderr 'http://127.0.0.1:$server->{port}/s/json?show=events' 2>&1 > /dev/null`; + my $jresp = decode_json("$resp"); + is $jresp->{'connections'}, undef, "Connections not present"; + is $jresp->{'requests'}, undef, "Requests not present"; + is $jresp->{'status-errors.404'}, 1, "Found the 404 error"; +}; + +subtest "duration stats" => sub { + my $server = spawn_h2o(<< "EOT"); +duration-stats: ON +hosts: + default: + paths: + /: + file.dir: @{[ DOC_ROOT ]} + /s: + status: ON +EOT + + my $resp = `curl --silent -o /dev/stderr http://127.0.0.1:$server->{port}/s/json?noreqs 2>&1 > /dev/null`; + my $jresp = decode_json("$resp"); + my @nr_requests = @{ $jresp->{'requests'} }; + is $jresp->{'connections'}, 1, "One connection"; + is scalar @nr_requests, 1, "One request"; + is $jresp->{'status-errors.404'}, 0, "Additional errors"; + is $jresp->{'connect-time-0'}, 0, "Duration stats"; +}; + + + + +done_testing(); -- cgit v1.2.3