1N/A chdir 't' if -d 't'; 1N/A print "1..0 # Skip: not perlio\n"; 1N/Ano utf8;
# needed for use utf8 not griping about the raw octets 1N/A $a = chr(300); # This *is* UTF-encoded 1N/A binmode(F); # we write a "\n" and then tell() - avoid CRLF issues. 1N/A { # Check byte length of $b 1N/A print F $b,"\n"; # Don't upgrades $b 1N/A { # Check byte length of $b 1N/A { use bytes; if (ord('A')==193){$y += 2;}else{$y += 3;}} # EBCDIC ASCII 1N/A # Now let's make it suffer. 1N/A# Hm. Time to get more evil. 1N/A# Now we have a deformed file. 1N/A@a = map { chr(1 << ($_ << 2)) } 0..5; # 0x1, 0x10, .., 0x100000 1N/A# read() should work on characters, not bytes 1N/A print '# ord($_) == ', ord($_), "\n"; 1N/A print '# ord($b) == ', ord($b), "\n"; 1N/A print '# tell(F) == ', tell(F), "\n"; 1N/A print '# $a == ', $a, "\n"; 1N/A print '# $c == ', $c, "\n"; 1N/A # Check that warnings are on on I/O, and that they can be muffled. 1N/A like( $@, 'Wide character in print' ); 1N/A like( $@, 'Wide character in print' ); 1N/A ok( $b eq chr(0x100).chr(0xde), "21395 '.= <>' utf8 vs. bytes" ); 1N/A ok( $b eq chr(0xde).chr(0x100), "21395 '.= <>' bytes vs. utf8" ); 1N/A my @a = ( [ 0x007F, "bytes" ], 1N/A [ 0x0080, "bytes" ], 1N/A [ 0x0100, "utf8" ] ); 1N/A # print "# @$u - @$v\n"; 1N/A # [perl #23428] Somethings rotten in unicode semantics 1N/A is( ord($a), 0x100, '23428 syswrite should not downgrade scalar' ); 1N/A like( $a, qr/^\w+/, '23428 syswrite should not downgrade scalar' ); 1N/A# sysread() and syswrite() tested in lib/open.t since Fcntl is used 1N/A # <FH> on a :utf8 stream should complain immediately with -w 1N/A # if it finds bad UTF-8 (:encoding(utf8) works this way) 1N/A "<:utf8 readline must warn about bad utf8"); 1N/A "<:utf8 rcatline must warn about bad utf8");