2
2
# Before `make install' is performed this script should be runnable with
3
3
# `make test'. After `make install' it should work as `perl t/nonblock.t'
10
11
use Errno qw(EAGAIN EINPROGRESS );
13
13
if ( grep { $^O =~m{$_}i } qw( MacOS VOS vmesa riscos amigaos mswin32) ) {
14
14
print "1..0 # Skipped: ps not implemented on this platform\n";
25
use vars qw( $SSL_SERVER_ADDR );
26
do "t/ssl_settings.req" || do "ssl_settings.req";
28
25
if ( ! getsize($$) ) {
29
print "1..0 # Skipped: no usable ps\n";
26
print "1..0 # Skipped: no usable ps\n";
33
30
my $server = IO::Socket::SSL->new(
34
LocalAddr => $SSL_SERVER_ADDR,
31
LocalAddr => '127.0.0.1',
34
SSL_cert_file => 'certs/server-cert.pem',
35
SSL_key_file => 'certs/server-key.pem',
38
my $addr = $SSL_SERVER_ADDR.':'.$server->sockport;
40
defined( my $pid = fork()) or do {
41
print "1..0 # Skipped: fork failed\n";
38
my $saddr = $server->sockhost.':'.$server->sockport;
39
defined( my $pid = fork()) or die "fork failed: $!";
48
# socket accept, client handshake and client close
43
# socket accept, client handshake and client close
56
51
# plain non-SSL connect and close w/o sending data
58
IO::Socket::INET->new( $addr ) or next;
53
IO::Socket::INET->new( $saddr ) or next;
60
55
my $size100 = getsize($pid);
61
56
if ( ! $size100 ) {
62
print "1..0 # Skipped: cannot get size of child process\n";
57
print "1..0 # Skipped: cannot get size of child process\n";
67
IO::Socket::INET->new( $addr ) or next;
62
IO::Socket::INET->new( $saddr ) or next;
69
64
my $size200 = getsize($pid);
72
IO::Socket::INET->new( $addr ) or next;
67
IO::Socket::INET->new( $saddr ) or next;
74
69
my $size300 = getsize($pid);
75
70
if ($size100>$size200 or $size200<$size300) {;
76
print "1..0 # skipped - do we measure the right thing?\n";
71
print "1..0 # skipped - do we measure the right thing?\n";
92
open( my $ps,'-|',"ps -o vsize -p $pid 2>/dev/null" ) or return;
93
$ps && <$ps> or return; # header
94
return int(<$ps>); # size
87
open( my $ps,'-|',"ps -o vsize -p $pid 2>/dev/null" ) or return;
88
$ps && <$ps> or return; # header
89
return int(<$ps>); # size