Upgrade to Time::HiRes 1.44.
[p5sagit/p5-mst-13.2.git] / t / uni / write.t
CommitLineData
78da4d13 1#!./perl -w
2use strict;
3
4BEGIN {
5 chdir 't' if -d 't';
6 @INC = qw(../lib .);
7 require "test.pl";
3995db9d 8 unless (PerlIO::Layer->find('perlio')){
9 print "1..0 # Skip: PerlIO required\n";
10 exit 0;
11 }
78da4d13 12}
13
14plan tests => 6;
15
16# Some tests for UTF8 and format/write
17
18our ($bitem1, $uitem1) = ("\x{ff}", "\x{100}");
19our ($bitem2, $uitem2) = ("\x{fe}", "\x{101}");
20our ($blite1, $ulite1) = ("\x{fd}", "\x{102}");
21our ($blite2, $ulite2) = ("\x{fc}", "\x{103}");
22our ($bmulti, $umulti) = ("\x{fb}\n\x{fa}\n\x{f9}\n",
23 "\x{104}\n\x{105}\n\x{106}\n");
24
25sub fmwrtest {
26 no strict 'refs';
27 my ($out, $format, $expect, $name) = @_;
28 eval "format $out =\n$format.\n"; die $@ if $@;
29 open $out, '>:utf8', 'Uni_write.tmp' or die "Can't create Uni_write.tmp";
30 write $out;
31 close $out or die "Could not close $out: $!";
32
33 open UIN, '<:utf8', 'Uni_write.tmp' or die "Can't open Uni_write.tmp";;
34 my $result = do { local $/; <UIN>; };
35 close UIN;
36
37 is($result, $expect, $name);
38}
39
40fmwrtest OUT1 => <<EOFORMAT, <<EOEXPECT, "non-UTF8 literal / UTF8 item (1)";
41$blite1 @<<
42\$uitem1
43$blite2 @<<
44\$bitem2
45EOFORMAT
46$blite1 $uitem1
47$blite2 $bitem2
48EOEXPECT
49
50fmwrtest OUT2 => <<EOFORMAT, <<EOEXPECT, "non-UTF8 literal / UTF8 item (2)";
51$blite1 @<<
52\$bitem1
53$blite2 @<<
54\$uitem2
55EOFORMAT
56$blite1 $bitem1
57$blite2 $uitem2
58EOEXPECT
59
60fmwrtest OUT3 => <<EOFORMAT, <<EOEXPECT, "UTF8 literal / non-UTF8 item (1)";
61$ulite1 @<<
62\$bitem1
63$blite2 @<<
64\$bitem2
65EOFORMAT
66$ulite1 $bitem1
67$blite2 $bitem2
68EOEXPECT
69
70fmwrtest OUT4 => <<EOFORMAT, <<EOEXPECT, "UTF8 literal / non-UTF8 item (2)";
71$blite1 @<<
72\$bitem1
73$ulite2 @<<
74\$bitem2
75EOFORMAT
76$blite1 $bitem1
77$ulite2 $bitem2
78EOEXPECT
79
80fmwrtest OUT5 => <<EOFORMAT, <<EOEXPECT, "non-UTF8 literal / UTF8 multiline";
81$blite1
82@*
83\$umulti
84$blite2
85EOFORMAT
86$blite1
87$umulti$blite2
88EOEXPECT
89
90fmwrtest OUT6 => <<EOFORMAT, <<EOEXPECT, "UTF8 literal / non-UTF8 multiline";
91$ulite1
92@*
93\$bmulti
94$blite2
95EOFORMAT
96$ulite1
97$bmulti$blite2
98EOEXPECT
99
100unlink 'Uni_write.tmp';