1b39c5158Smillert#!./perl 2b39c5158Smillert 3b39c5158SmillertBEGIN { 4*256a93a4Safresh1 unless ( PerlIO::Layer->find('perlio') ) { 5b39c5158Smillert print "1..0 # Skip: not perlio\n"; 6b39c5158Smillert exit 0; 7b39c5158Smillert } 8b39c5158Smillert} 9b39c5158Smillert 10b39c5158Smillertrequire($ENV{PERL_CORE} ? "../../t/test.pl" : "./t/test.pl"); 11b39c5158Smillert 1291f110e0Safresh1my $buf_size_count = 8200; # Above default buffer size of 8192 1391f110e0Safresh1 1491f110e0Safresh1plan(tests => 5 + 2 * $buf_size_count); 15b39c5158Smillert 16b39c5158Smillertmy $io; 17b39c5158Smillert 18b39c5158Smillertuse_ok('IO::File'); 19b39c5158Smillert 20b39c5158Smillert$io = IO::File->new; 21b39c5158Smillert 22b39c5158Smillertok($io->open("io_utf8", ">:utf8"), "open >:utf8"); 23b39c5158Smillertok((print $io chr(256)), "print chr(256)"); 24b39c5158Smillertundef $io; 25b39c5158Smillert 26b39c5158Smillert$io = IO::File->new; 27b39c5158Smillertok($io->open("io_utf8", "<:utf8"), "open <:utf8"); 28b39c5158Smillertis(ord(<$io>), 256, "readline chr(256)"); 2991f110e0Safresh1 3091f110e0Safresh1for my $i (0 .. $buf_size_count - 1) { 3191f110e0Safresh1 is($io->ungetc($i), $i, "ungetc of $i returns itself"); 3291f110e0Safresh1} 3391f110e0Safresh1 3491f110e0Safresh1for (my $i = $buf_size_count - 1; $i >= 0; $i--) { 3591f110e0Safresh1 is(ord($io->getc()), $i, "getc gets back $i"); 3691f110e0Safresh1} 3791f110e0Safresh1 38b39c5158Smillertundef $io; 39b39c5158Smillert 40b39c5158SmillertEND { 41b39c5158Smillert 1 while unlink "io_utf8"; 42b39c5158Smillert} 43