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