diff options
Diffstat (limited to 'debian/vendor-h2o/t/50reverse-proxy-upstream-down.t')
-rw-r--r-- | debian/vendor-h2o/t/50reverse-proxy-upstream-down.t | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/debian/vendor-h2o/t/50reverse-proxy-upstream-down.t b/debian/vendor-h2o/t/50reverse-proxy-upstream-down.t new file mode 100644 index 0000000..3f30a44 --- /dev/null +++ b/debian/vendor-h2o/t/50reverse-proxy-upstream-down.t @@ -0,0 +1,35 @@ +use strict; +use warnings; +use Net::EmptyPort qw(check_port empty_port); +use Test::More; +use t::Util; + +plan skip_all => 'curl not found' + unless prog_exists('curl'); + +sub doit { + my $persistent = shift; + my $upstream_port = empty_port(); + my $server = spawn_h2o(<< "EOT"); +hosts: + default: + paths: + /: + proxy.reverse.url: http://127.0.0.1:$upstream_port + proxy.timeout.io: 2000 +@{[ $persistent ? "" : "proxy.timeout.keepalive: 0" ]} +EOT + my $port = $server->{port}; + my $res = `curl --max-time 5 --silent --dump-header /dev/stderr http://127.0.0.1:$port/ 2>&1 > /dev/null`; + like $res, qr{^HTTP/1\.1 502 }, "502 response on upstream error"; +}; + +subtest 'non-persistent' => sub { + doit(0); +}; + +subtest 'persistent' => sub { + doit(1); +}; + +done_testing(); |