4 unless(grep /blib/, @INC) {
6 unshift @INC, '../lib' if -d '../lib';
8 # ``use IO::Socket'' executes too early below in the os2 block
10 print "1..0 # Skip: no fork\n";
18 if(-d "lib" && -f "TEST") {
20 if (! $Config{'d_fork'}) {
23 elsif ($Config{'extensions'} !~ /\bSocket\b/) {
24 $reason = 'Socket extension unavailable';
26 elsif ($Config{'extensions'} !~ /\bIO\b/) {
27 $reason = 'IO extension unavailable';
29 elsif ($^O eq 'os2') {
32 eval {IO::Socket::pack_sockaddr_un('/tmp/foo') || 1}
33 or $@ !~ /not implemented/ or
34 $reason = 'compiled without TCP/IP stack v4';
35 } elsif ($^O eq 'qnx') {
36 $reason = 'Not implemented';
38 undef $reason if $^O eq 'VMS' and $Config{d_socket};
40 print "1..0 # Skip: $reason\n";
46 $PATH = "/tmp/sock-$$";
48 # Test if we can create the file within the tmp directory
49 if (-e $PATH or not open(TEST, ">$PATH") and $^O ne 'os2') {
50 print "1..0 # Skip: cannot open '$PATH' for write\n";
54 unlink($PATH) or $^O eq 'os2' or die "Can't unlink $PATH: $!";
62 $listen = IO::Socket::UNIX->new(Local=>$PATH, Listen=>0) || die "$!";
67 $sock = $listen->accept();
70 print $sock->getline();
77 unlink($PATH) || $^O eq 'os2' || warn "Can't unlink $PATH: $!";
81 } elsif(defined $pid) {
83 $sock = IO::Socket::UNIX->new(Peer => $PATH) or die "$!";
87 print $sock->getline();