diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2002-01-31 15:26:41 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2002-01-31 15:26:41 +0000 |
commit | 62961d2e50d22e7ae5a679eac7bf6d593193e108 (patch) | |
tree | f95115fdf1647a324092e9463ab667a475f4036d /t/io/utf8.t | |
parent | 725d232a70026302b7898692e2e17c43b9ad4e76 (diff) | |
download | perl-62961d2e50d22e7ae5a679eac7bf6d593193e108.tar.gz |
Turn the I/O Unicode error by default on, but the
character-generating Unicode error by default off,
as Larry suggested.
p4raw-id: //depot/perl@14505
Diffstat (limited to 't/io/utf8.t')
-rwxr-xr-x | t/io/utf8.t | 51 |
1 files changed, 48 insertions, 3 deletions
diff --git a/t/io/utf8.t b/t/io/utf8.t index e8caf722f2..d0fe0f1462 100755 --- a/t/io/utf8.t +++ b/t/io/utf8.t @@ -12,7 +12,7 @@ BEGIN { no utf8; # needed for use utf8 not griping about the raw octets $| = 1; -print "1..26\n"; +print "1..31\n"; open(F,"+>:utf8",'a'); print F chr(0x100).'£'; @@ -186,7 +186,7 @@ if (ord('A') == 193) { close F; unlink('a'); -open F, ">a"; +open F, ">:utf8", "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; @@ -216,6 +216,52 @@ for (@a) { close F; print "ok 26\n"; +{ + # Check that warnings are on on I/O, and that they can be muffled. + + local $SIG{__WARN__} = sub { $@ = shift }; + + undef $@; + open F, ">a"; + print F chr(0x100); + close(F); + + print $@ =~ /Wide character in print/ ? "ok 27\n" : "not ok 27\n"; + + undef $@; + open F, ">:utf8", ">a"; + print F chr(0x100); + close(F); + + print defined $@ ? "not ok 28\n" : "ok 28\n"; + + undef $@; + open F, ">a"; + binmode(F, ":utf8"); + print F chr(0x100); + close(F); + + print defined $@ ? "not ok 29\n" : "ok 29\n"; + + no warnings 'utf8'; + + undef $@; + open F, ">a"; + print F chr(0x100); + close(F); + + print defined $@ ? "not ok 30\n" : "ok 30\n"; + + use warnings 'utf8'; + + undef $@; + open F, ">a"; + print F chr(0x100); + close(F); + + print $@ =~ /Wide character in print/ ? "ok 31\n" : "not ok 31\n"; +} + # sysread() and syswrite() tested in lib/open.t since Fnctl is used END { @@ -223,4 +269,3 @@ END { 1 while unlink "b"; } - |