summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/t/50status.t
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--web/server/h2o/libh2o/t/50status.t88
1 files changed, 88 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/t/50status.t b/web/server/h2o/libh2o/t/50status.t
new file mode 100644
index 00000000..64adf960
--- /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();