#!./perl -w # Tests for the command-line switches BEGIN { chdir 't' if -d 't'; @INC = '../lib'; unless (find PerlIO::Layer 'perlio') { print "1..0 # Skip: not perlio\n"; exit 0; } } BEGIN { require "./test.pl"; } plan(tests => 6); my $r; my @tmpfiles = (); END { unlink @tmpfiles } my $b = pack("C*", unpack("U0C*", pack("U",256))); $r = runperl( switches => [ '-CO', '-w' ], prog => 'print chr(256)', stderr => 1 ); like( $r, qr/^$b(?:\r?\n)?$/s, '-CO: no warning on UTF-8 output' ); SKIP: { if (exists $ENV{PERL_UNICODE} && ($ENV{PERL_UNICODE} eq "" || $ENV{PERL_UNICODE} =~ /[SO]/)) { skip(qq[cannot test with PERL_UNICODE locale "" or /[SO]/], 1); } $r = runperl( switches => [ '-CI', '-w' ], prog => 'print ord()', stderr => 1, stdin => $b ); like( $r, qr/^256(?:\r?\n)?$/s, '-CI: read in UTF-8 input' ); } $r = runperl( switches => [ '-CE', '-w' ], prog => 'warn chr(256), qq(\n)', stderr => 1 ); like( $r, qr/^$b(?:\r?\n)?$/s, '-CE: UTF-8 stderr' ); $r = runperl( switches => [ '-Co', '-w' ], prog => 'open(F, q(>out)); print F chr(256); close F', stderr => 1 ); like( $r, qr/^$/s, '-Co: auto-UTF-8 open for output' ); push @tmpfiles, "out"; $r = runperl( switches => [ '-Ci', '-w' ], prog => 'open(F, q(); close F', stderr => 1 ); like( $r, qr/^256(?:\r?\n)?$/s, '-Ci: auto-UTF-8 open for input' ); $r = runperl( switches => [ '-CA', '-w' ], prog => 'print ord shift', stderr => 1, args => [ chr(256) ] ); like( $r, qr/^256(?:\r?\n)?$/s, '-CA: @ARGV' );