tweak RE for NaNQ? recognition
[p5sagit/p5-mst-13.2.git] / t / lib / io_unix.t
1 #!./perl
2
3 BEGIN {
4     unless(grep /blib/, @INC) {
5         chdir 't' if -d 't';
6         unshift @INC, '../lib' if -d '../lib';
7     }
8 }
9
10 use Config;
11
12 BEGIN {
13     if (!$Config{d_fork}) {
14         print "1..0\n";
15         exit 0;
16     }
17
18     if(-d "lib" && -f "TEST") {
19         if ( ($Config{'extensions'} !~ /\bSocket\b/ ||
20               $Config{'extensions'} !~ /\bIO\b/)    &&
21               !(($^O eq 'VMS') && $Config{d_socket})) {
22             print "1..0\n";
23             exit 0;
24         }
25     }
26 }
27
28 $PATH = "/tmp/sock-$$";
29
30 # Test if we can create the file within the tmp directory
31 if (-e $PATH or not open(TEST, ">$PATH")) {
32     print "1..0\n";
33     exit 0;
34 }
35 close(TEST);
36 unlink($PATH) or die "Can't unlink $PATH: $!";
37
38 # Start testing
39 $| = 1;
40 print "1..5\n";
41
42 use IO::Socket;
43
44 $listen = IO::Socket::UNIX->new(Local=>$PATH, Listen=>0) || die "$!";
45 print "ok 1\n";
46
47 if($pid = fork()) {
48
49     $sock = $listen->accept();
50     print "ok 2\n";
51
52     print $sock->getline();
53
54     print $sock "ok 4\n";
55
56     $sock->close;
57
58     waitpid($pid,0);
59     unlink($PATH) || warn "Can't unlink $PATH: $!";
60
61     print "ok 5\n";
62
63 } elsif(defined $pid) {
64
65     $sock = IO::Socket::UNIX->new(Peer => $PATH) or die "$!";
66
67     print $sock "ok 3\n";
68
69     print $sock->getline();
70
71     $sock->close;
72
73     exit;
74 } else {
75  die;
76 }