diff options
Diffstat (limited to '')
-rwxr-xr-x | web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl b/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl new file mode 100755 index 000000000..6913bc8eb --- /dev/null +++ b/web/server/h2o/libh2o/misc/p5-Server-Starter/t/02-startfail-server.pl @@ -0,0 +1,32 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use lib qw(blib/lib lib); + +use IO::Socket::INET; +use Server::Starter qw(server_ports); + +$SIG{TERM} = sub { + exit 0; +}; + +my $gen = $ENV{SERVER_STARTER_GENERATION}; + +if ($gen == 1 || 3 <= $gen && $gen < 5) { + # emulate startup failure + exit 1; +} + +my $listener = IO::Socket::INET->new( + Proto => 'tcp', +); +$listener->fdopen((values %{server_ports()})[0], 'w') + or die "failed to bind listening socket:$!"; + +while (1) { + if (my $conn = $listener->accept) { + $conn->syswrite($gen); + } +} |