xref: /openbsd/gnu/usr.bin/perl/dist/IO/t/io_utf8.t (revision 256a93a4)
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