6 $ENV{PERL5LIB} = '../lib';
7 if ( ord("\t") != 9 ) { # skip on ebcdic platforms
8 print "1..0 # Skip utf8 tests on ebcdic platform.\n";
18 my ($got,$expect) = @_;
19 print "# expected [$expect], got [$got]\nnot " if $got ne $expect;
24 my ($got,$expect) = @_;
25 print "# expected not [$expect], got [$got]\nnot " if $got eq $expect;
31 my ($got,$expect) = @_;
32 print "# expected [$expect], got [$got]\nnot " if $got ne $expect;
38 my ($got,$expect) = @_;
39 print "# expected not [$expect], got [$got]\nnot " if $got eq $expect;
46 s/([\x{80}-\x{10ffff}])/"&#".ord($1).";"/eg;
51 my $rx = "\x{80}-\x{10ffff}";
52 s/([$rx])/"&#".ord($1).";"/eg;
57 my $rx = "\\x{80}-\\x{10ffff}";
58 s/([$rx])/"&#".ord($1).";"/eg;
67 $_ = "alphaNUMERICstring";
72 $_ = "alphaNUMERICstring";
77 $_ = "alphaNUMERICstring";
87 $_ = "alphaNUMERICstring";
92 $_ = "alpha123numeric456";
97 $_ = "alpha123numeric456";
102 $_ = ",123alpha,456numeric";
110 $_ = "\x{263A}>\x{263A}\x{263A}";
115 ok length((m/>(.)/)[0]), 1;
130 ok length($tmp=$&), 2;
133 ok length($tmp=$'), 1;
136 ok length($tmp=$`), 1;
139 ok length($tmp=$1), 1;
146 ok $tmp, pack("C*", ord(">"), 0342, 0230, 0272);
150 ok $tmp, pack("C*", 0342, 0230, 0272);
154 ok $tmp, pack("C*", 0342, 0230, 0272);
158 ok $tmp, pack("C*", 0342, 0230, 0272);
162 ok_bytes $&, pack("C*", ord(">"), 0342, 0230, 0272);
165 ok_bytes $', pack("C*", 0342, 0230, 0272);
168 ok_bytes $`, pack("C*", 0342, 0230, 0272);
171 ok_bytes $1, pack("C*", 0342, 0230, 0272);
181 ok length((m/>(.)/)[0]), 1;
196 ok $&, pack("C*", ord(">"), 0342);
199 ok $', pack("C*", 0230, 0272, 0342, 0230, 0272);
202 ok $`, pack("C*", 0342, 0230, 0272);
205 ok $1, pack("C*", 0342);
213 $_="\342\230\272>\342\230\272\342\230\272";
219 ok length((m/>(.)/)[0]), 1;
234 ok length($tmp=$&), 2;
237 ok length($tmp=$'), 1;
240 ok length($tmp=$`), 1;
243 ok length($tmp=$1), 1;
250 ok $tmp, pack("C*", ord(">"), 0342, 0230, 0272);
254 ok $tmp, pack("C*", 0342, 0230, 0272);
258 ok $tmp, pack("C*", 0342, 0230, 0272);
262 ok $tmp, pack("C*", 0342, 0230, 0272);
272 ok length((m/>(.)/)[0]), 1;
287 ok $&, pack("C*", ord(">"), 0342);
290 ok $', pack("C*", 0230, 0272, 0342, 0230, 0272);
293 ok $`, pack("C*", 0342, 0230, 0272);
296 ok $1, pack("C*", 0342);
301 ok "\x{ab}" =~ /^\x{ab}$/, 1;
307 ok_bytes chr(0xe2), pack("C*", 0xc3, 0xa2);
313 my @a = map ord, split(//, join("", map chr, (1234, 123, 2345)));
314 ok "@a", "1234 123 2345";
321 my @a = map ord, split(/$x/, join("", map chr, (1234, 123, 2345)));
322 ok "@a", "1234 2345";
328 { use bytes; $a = "\xc3\xa4"; }
329 { use utf8; $b = "\xe4"; }
330 { use bytes; ok_bytes $a, $b; $test++; } # 69
331 { use utf8; nok $a, $b; $test++; } # 70
335 my @x = ("stra\337e 138","stra\337e 138");
337 s/(\d+)\s*([\w\-]+)/$1 . uc $2/e;
338 my($latin) = /^(.+)(?:\s+\d)/;
339 print $latin eq "stra\337e" ? "ok $test\n" :
340 "#latin[$latin]\nnot ok $test\n";
342 $latin =~ s/stra\337e/straße/; # \303\237 after the 2nd a
344 $latin =~ s!(s)tr(?:aß|s+e)!$1tr.!; # \303\237 after the a