non-perlio robustness.
authorJarkko Hietaniemi <jhi@iki.fi>
Wed, 3 Apr 2002 19:15:33 +0000 (19:15 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Wed, 3 Apr 2002 19:15:33 +0000 (19:15 +0000)
p4raw-id: //depot/perl@15714

ext/Socket/socketpair.t
lib/utf8.t

index 1d6fc8b..79dfb63 100644 (file)
@@ -2,6 +2,7 @@
 
 my $child;
 my $can_fork;
+my $has_perlio;
 
 BEGIN {
     chdir 't' if -d 't';
@@ -40,6 +41,11 @@ BEGIN {
         exit 1;
       }
     }
+    unless ($has_perlio = find PerlIO::Layer 'perlio') {
+       print <<EOF;
+# Since you don't have perlio you might get failures with UTF-8 locales.
+EOF
+    }
 }
 
 use Socket;
@@ -77,8 +83,10 @@ ok (socketpair (LEFT, RIGHT, AF_UNIX, SOCK_STREAM, PF_UNSPEC),
     "socketpair (LEFT, RIGHT, AF_UNIX, SOCK_STREAM, PF_UNSPEC)")
   or print "# \$\! = $!\n";
 
-binmode(LEFT,  ":bytes");
-binmode(RIGHT, ":bytes");
+if ($has_perlio) {
+    binmode(LEFT,  ":bytes");
+    binmode(RIGHT, ":bytes");
+}
 
 my @left = ("hello ", "world\n");
 my @right = ("perl ", "rules!"); # Not like I'm trying to bias any survey here.
@@ -166,8 +174,10 @@ ok (socketpair (LEFT, RIGHT, AF_UNIX, SOCK_DGRAM, PF_UNSPEC),
     "socketpair (LEFT, RIGHT, AF_UNIX, SOCK_DGRAM, PF_UNSPEC)")
   or print "# \$\! = $!\n";
 
-binmode(LEFT,  ":bytes");
-binmode(RIGHT, ":bytes");
+if ($has_perlio) {
+    binmode(LEFT,  ":bytes");
+    binmode(RIGHT, ":bytes");
+}
 
 foreach (@left) {
   # is (syswrite (LEFT, $_), length $_, "write " . _qq ($_) . " to left");
index 19d88e5..acd64bf 100644 (file)
@@ -1,9 +1,16 @@
 #!./perl 
 
+my $has_perlio;
+
 BEGIN {
     chdir 't' if -d 't';
     @INC = '../lib';
     require './test.pl';
+    unless ($has_perlio = find PerlIO::Layer 'perlio') {
+       print <<EOF;
+# Since you don't have perlio you might get failures with UTF-8 locales.
+EOF
+    }
 }
 
 # NOTE!
@@ -165,7 +172,7 @@ BANG
     foreach (@tests) {
         my ($why, $prog, $expect) = @$_;
         open P, ">$progfile" or die "Can't open '$progfile': $!";
-        binmode(P, ":bytes");
+        binmode(P, ":bytes") if $has_perlio;
        print P $show, $prog, '; print $b'
             or die "Print to 'progfile' failed: $!";
         close P or die "Can't close '$progfile': $!";