Need to skip more tests if not perlio.
Jarkko Hietaniemi [Tue, 20 Nov 2001 15:14:49 +0000 (15:14 +0000)]
p4raw-id: //depot/perl@13129

lib/open.t

index 07fde4d..9f1a860 100644 (file)
@@ -71,8 +71,8 @@ is( ${^OPEN}, ":raw :crlf\0:raw :crlf",
 is( $^H{'open_IO'}, 'crlf', 'should record last layer set in %^H' );
 
 SKIP: {
-    skip("no perlio, no :utf8", 1) unless $Config{'useperlio'};
-# the special :utf8 layer
+    skip("no perlio, no :utf8", 4) unless $Config{'useperlio'};
+
     use open ':utf8';
     open(O, ">utf8");
     print O chr(0x100);
@@ -80,92 +80,92 @@ SKIP: {
     open(I, "<utf8");
     is(ord(<I>), 0x100, ":utf8 single wide character round-trip");
     close I;
-}
 
-open F, ">a";
-@a = map { chr(1 << ($_ << 2)) } 0..5; # 0x1, 0x10, .., 0x100000
-unshift @a, chr(0); # ... and a null byte in front just for fun
-print F @a;
-close F;
+    open F, ">a";
+    @a = map { chr(1 << ($_ << 2)) } 0..5; # 0x1, 0x10, .., 0x100000
+    unshift @a, chr(0); # ... and a null byte in front just for fun
+    print F @a;
+    close F;
 
-sub systell {
-    use Fcntl 'SEEK_CUR';
-    sysseek($_[0], 0, SEEK_CUR);
-}
+    sub systell {
+        use Fcntl 'SEEK_CUR';
+        sysseek($_[0], 0, SEEK_CUR);
+    }
 
-require bytes; # not use
-
-my $ok;
-
-open F, "<:utf8", "a";
-$ok = $a = 0;
-for (@a) {
-    unless (
-           ($c = sysread(F, $b, 1)) == 1  &&
-            length($b)               == 1  &&
-            ord($b)                  == ord($_) &&
-           systell(F)               == ($a += bytes::length($b))
-           ) {
-        print '# ord($_)           == ', ord($_), "\n";
-        print '# ord($b)           == ', ord($b), "\n";
-        print '# length($b)        == ', length($b), "\n";
-        print '# bytes::length($b) == ', bytes::length($b), "\n";
-        print '# systell(F)        == ', systell(F), "\n";
-        print '# $a                == ', $a, "\n";
-        print '# $c                == ', $c, "\n";
-        last;
+    require bytes; # not use
+
+    my $ok;
+
+    open F, "<:utf8", "a";
+    $ok = $a = 0;
+    for (@a) {
+        unless (
+               ($c = sysread(F, $b, 1)) == 1  &&
+               length($b)               == 1  &&
+               ord($b)                  == ord($_) &&
+               systell(F)               == ($a += bytes::length($b))
+               ) {
+           print '# ord($_)           == ', ord($_), "\n";
+           print '# ord($b)           == ', ord($b), "\n";
+           print '# length($b)        == ', length($b), "\n";
+           print '# bytes::length($b) == ', bytes::length($b), "\n";
+           print '# systell(F)        == ', systell(F), "\n";
+           print '# $a                == ', $a, "\n";
+           print '# $c                == ', $c, "\n";
+           last;
+       }
+       $ok++;
     }
-    $ok++;
-}
-close F;
-ok($ok == @a,
-   "on :utf8 streams sysread() should work on characters, not bytes");
-
-# syswrite() on should work on characters, not bytes
-open G, ">:utf8", "b";
-$ok = $a = 0;
-for (@a) {
-    unless (
-           ($c = syswrite(G, $_, 1)) == 1 &&
-            systell(G)                == ($a += bytes::length($_))
-           ) {
-        print '# ord($_)           == ', ord($_), "\n";
-        print '# bytes::length($_) == ', bytes::length($_), "\n";
-        print '# systell(G)        == ', systell(G), "\n";
-        print '# $a                == ', $a, "\n";
-        print '# $c                == ', $c, "\n";
-        print "not ";
-        last;
+    close F;
+    ok($ok == @a,
+       "on :utf8 streams sysread() should work on characters, not bytes");
+
+    # syswrite() on should work on characters, not bytes
+    open G, ">:utf8", "b";
+    $ok = $a = 0;
+    for (@a) {
+       unless (
+               ($c = syswrite(G, $_, 1)) == 1 &&
+               systell(G)                == ($a += bytes::length($_))
+               ) {
+           print '# ord($_)           == ', ord($_), "\n";
+           print '# bytes::length($_) == ', bytes::length($_), "\n";
+           print '# systell(G)        == ', systell(G), "\n";
+           print '# $a                == ', $a, "\n";
+           print '# $c                == ', $c, "\n";
+           print "not ";
+           last;
+       }
+       $ok++;
     }
-    $ok++;
-}
-close G;
-ok($ok == @a,
-   "on :utf8 streams syswrite() should work on characters, not bytes");
-
-open G, "<:utf8", "b";
-$ok = $a = 0;
-for (@a) {
-    unless (
-           ($c = sysread(G, $b, 1)) == 1 &&
-           length($b)               == 1 &&
-           ord($b)                  == ord($_) &&
-           systell(G)               == ($a += bytes::length($_))
-           ) {
-        print '# ord($_)           == ', ord($_), "\n";
-        print '# ord($b)           == ', ord($b), "\n";
-        print '# length($b)        == ', length($b), "\n";
-        print '# bytes::length($b) == ', bytes::length($b), "\n";
-        print '# systell(G)        == ', systell(G), "\n";
-        print '# $a                == ', $a, "\n";
-        print '# $c                == ', $c, "\n";
-        last;
+    close G;
+    ok($ok == @a,
+       "on :utf8 streams syswrite() should work on characters, not bytes");
+
+    open G, "<:utf8", "b";
+    $ok = $a = 0;
+    for (@a) {
+       unless (
+               ($c = sysread(G, $b, 1)) == 1 &&
+               length($b)               == 1 &&
+               ord($b)                  == ord($_) &&
+               systell(G)               == ($a += bytes::length($_))
+               ) {
+           print '# ord($_)           == ', ord($_), "\n";
+           print '# ord($b)           == ', ord($b), "\n";
+           print '# length($b)        == ', length($b), "\n";
+           print '# bytes::length($b) == ', bytes::length($b), "\n";
+           print '# systell(G)        == ', systell(G), "\n";
+           print '# $a                == ', $a, "\n";
+           print '# $c                == ', $c, "\n";
+           last;
+       }
+       $ok++;
     }
-    $ok++;
+    close G;
+    ok($ok == @a,
+       "checking syswrite() output on :utf8 streams by reading it back in");
 }
-close G;
-ok($ok == @a,
-   "checking syswrite() output on :utf8 streams by reading it back in");
 
 END {
     1 while unlink "utf8";