summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t
diff options
context:
space:
mode:
Diffstat (limited to 'web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t')
-rw-r--r--web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t82
1 files changed, 0 insertions, 82 deletions
diff --git a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t b/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t
deleted file mode 100644
index f4b0d4162..000000000
--- a/web/server/h2o/libh2o/misc/p5-Server-Starter/t/01-starter.t
+++ /dev/null
@@ -1,82 +0,0 @@
-use strict;
-use warnings;
-
-use File::Temp ();
-use Test::TCP;
-use Test::More tests => 28;
-
-use Server::Starter qw(start_server);
-
-$SIG{PIPE} = sub {};
-
-my $tempdir = File::Temp::tempdir(CLEANUP => 1);
-
-for my $signal_on_hup ('TERM', 'USR1') {
-
- test_tcp(
- server => sub {
- my $port = shift;
- start_server(
- port => $port,
- exec => [
- $^X, qw(t/01-starter-echod.pl), "$tempdir/signame",
- ],
- status_file => "$tempdir/status",
- ($signal_on_hup ne 'TERM'
- ? (signal_on_hup => $signal_on_hup) : ()),
- );
- },
- client => sub {
- my ($port, $server_pid) = @_;
- my $buf;
- #sleep 1;
- my $sock = IO::Socket::INET->new(
- PeerAddr => "127.0.0.1:$port",
- Proto => 'tcp',
- );
- ok($sock, 'connect');
- # check response and get pid
- is($sock->syswrite("hello"), 5, 'write');
- ok($sock->sysread($buf, 1048576), 'read');
- undef $sock;
- like($buf, qr/^\d+:hello$/, 'read');
- $buf =~ /^(\d+):/;
- my $worker_pid = $1;
- # switch to next gen
- sleep 3;
- my $status = get_status();
- like(get_status(), qr/^1:\d+\n$/s, 'status before restart');
- kill 'HUP', $server_pid;
- sleep 2;
- like(get_status(), qr/^1:\d+\n2:\d+$/s, 'status during restart');
- sleep 2;
- like(get_status(), qr/^2:\d+\n$/s, 'status after restart');
- is(
- do {
- open my $fh, '<', "$tempdir/signame"
- or die $!;
- <$fh>;
- },
- $signal_on_hup,
- 'signal sent on hup',
- );
- $sock = IO::Socket::INET->new(
- PeerAddr => "127.0.0.1:$port",
- Proto => 'tcp',
- );
- ok($sock, 'reconnect');
- is($sock->syswrite("hello"), 5, 'write after switching');
- ok($sock->sysread($buf, 1048576), 'read after switching');
- like($buf, qr/^\d+:hello$/, 'read after swiching (format)');
- isnt($buf, "$worker_pid:hello", 'pid should have changed');
- },
- );
-
- ok ! -e "$tempdir/status", 'no more status file';
-}
-
-sub get_status {
- open my $fh, '<', "$tempdir/status"
- or die "failed to open file:$tempdir/status:$!";
- do { undef $/; <$fh> };
-}