X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fcomp%2Futf.t;h=0d340f6f98e8de512124ee197109de9f4d0dca4c;hb=5c7da53cc0fa3db2a0adc93851fae037de310655;hp=904c8a378738c5dffc691a66fe669b4d28befb11;hpb=912292233dcfb4a5bc3775a4a9900b2fd8246607;p=p5sagit%2Fp5-mst-13.2.git diff --git a/t/comp/utf.t b/t/comp/utf.t index 904c8a3..0d340f6 100644 --- a/t/comp/utf.t +++ b/t/comp/utf.t @@ -1,36 +1,28 @@ #!./perl -BEGIN { - chdir 't' if -d 't'; - @INC = '../lib'; - unless (find PerlIO::Layer 'perlio') { - print "1..0 # Skip: not perlio\n"; - exit 0; - } - if ($ENV{PERL_CORE_MINITEST}) { - print "1..0 # Skip: no dynamic loading on miniperl, no threads\n"; - exit 0; - } - require Config; import Config; - if ($Config{'extensions'} !~ /\bEncode\b/) { - print "1..0 # Skip: Encode was not built\n"; - exit 0; - } -} - BEGIN { require "./test.pl"; } plan(tests => 18); -my $BOM = chr(0xFEFF); +my %templates = ( + utf8 => 'C0U', + utf16be => 'n', + utf16le => 'v', + ); + +sub bytes_to_utf { + my ($enc, $content, $do_bom) = @_; + my $template = $templates{$enc}; + die "Unsupported encoding $enc" unless $template; + return pack "$template*", ($do_bom ? 0xFEFF : ()), unpack "C*", $content; +} sub test { my ($enc, $tag, $bom) = @_; - open(UTF_PL, ">:raw:encoding($enc)", "utf$$.pl") - or die "utf.pl($enc,$tag,$bom): $!"; - print UTF_PL $BOM if $bom; - print UTF_PL "$tag\n"; - close(UTF_PL); + open my $fh, ">", "utf$$.pl" or die "utf.pl: $!"; + binmode $fh; + print $fh bytes_to_utf($enc, "$tag\n", $bom); + close $fh or die $!; my $got = do "./utf$$.pl"; is($got, $tag); }