root/lang/perl/Server-Starter/trunk/t/03-startfail.t @ 35274

Revision 35274, 1.6 kB (checked in by kazuho, 5 years ago)

remove NS::PreFork?

Line 
1use strict;
2use warnings;
3
4use Test::TCP;
5use Test::More tests => 9;
6
7use Server::Starter qw(start_server);
8
9test_tcp(
10    server => sub {
11        my $port = shift;
12        start_server(
13            port     => $port,
14            exec     => [ qw(t/03-startfail-server.pl) ],
15        );
16    },
17    client => sub {
18        my ($port, $server_pid) = @_;
19        my $buf;
20        sleep 3;
21        {
22            my $sock = IO::Socket::INET->new(
23                PeerAddr => "127.0.0.1:$port",
24                Proto    => 'tcp',
25            );
26            ok($sock, 'connect');
27            # check generation
28            ok($sock->sysread($buf, 1048576), 'read');
29            is($buf, 2, 'check generation');
30        }
31        # request restart, that will fail
32        kill 'HUP', $server_pid;
33        sleep 1;
34        {
35            my $sock = IO::Socket::INET->new(
36                PeerAddr => "127.0.0.1:$port",
37                Proto    => 'tcp',
38            );
39            ok($sock, 'connect');
40            ok(
41                $sock->sysread($buf, 1048576),
42                'read while worker is failing to reboot',
43            );
44            is($buf, 2, 'check generation');
45        }
46        # wait until server succeds in reboot
47        sleep 5;
48        {
49            my $sock = IO::Socket::INET->new(
50                PeerAddr => "127.0.0.1:$port",
51                Proto    => 'tcp',
52            );
53            ok($sock, 'connect');
54            ok(
55                $sock->sysread($buf, 1048576),
56                'read after worker succeeds to reboot',
57            );
58            is($buf, 5, 'check generation');
59        }
60    },
61);
Note: See TracBrowser for help on using the browser.