254 lines
3.8 KiB
Perl
254 lines
3.8 KiB
Perl
|
#!./perl
|
||
|
|
||
|
BEGIN {
|
||
|
chdir 't' if -d 't';
|
||
|
unshift @INC, '../lib';
|
||
|
$ENV{PERL5LIB} = '../lib';
|
||
|
if ( ord("\t") != 9 ) { # skip on ebcdic platforms
|
||
|
print "1..0 # Skip utf8 tests on ebcdic platform.\n";
|
||
|
exit;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
print "1..60\n";
|
||
|
|
||
|
my $test = 1;
|
||
|
|
||
|
sub ok {
|
||
|
my ($got,$expect) = @_;
|
||
|
print "# expected [$expect], got [$got]\nnot " if $got ne $expect;
|
||
|
print "ok $test\n";
|
||
|
}
|
||
|
|
||
|
{
|
||
|
use utf8;
|
||
|
$_ = ">\x{263A}<";
|
||
|
s/([\x{80}-\x{10ffff}])/"&#".ord($1).";"/eg;
|
||
|
ok $_, '>☺<';
|
||
|
$test++;
|
||
|
|
||
|
$_ = ">\x{263A}<";
|
||
|
my $rx = "\x{80}-\x{10ffff}";
|
||
|
s/([$rx])/"&#".ord($1).";"/eg;
|
||
|
ok $_, '>☺<';
|
||
|
$test++;
|
||
|
|
||
|
$_ = ">\x{263A}<";
|
||
|
my $rx = "\\x{80}-\\x{10ffff}";
|
||
|
s/([$rx])/"&#".ord($1).";"/eg;
|
||
|
ok $_, '>☺<';
|
||
|
$test++;
|
||
|
|
||
|
$_ = "alpha,numeric";
|
||
|
m/([[:alpha:]]+)/;
|
||
|
ok $1, 'alpha';
|
||
|
$test++;
|
||
|
|
||
|
$_ = "alphaNUMERICstring";
|
||
|
m/([[:^lower:]]+)/;
|
||
|
ok $1, 'NUMERIC';
|
||
|
$test++;
|
||
|
|
||
|
$_ = "alphaNUMERICstring";
|
||
|
m/(\p{Ll}+)/;
|
||
|
ok $1, 'alpha';
|
||
|
$test++;
|
||
|
|
||
|
$_ = "alphaNUMERICstring";
|
||
|
m/(\p{Lu}+)/;
|
||
|
ok $1, 'NUMERIC';
|
||
|
$test++;
|
||
|
|
||
|
$_ = "alpha,numeric";
|
||
|
m/([\p{IsAlpha}]+)/;
|
||
|
ok $1, 'alpha';
|
||
|
$test++;
|
||
|
|
||
|
$_ = "alphaNUMERICstring";
|
||
|
m/([^\p{IsLower}]+)/;
|
||
|
ok $1, 'NUMERIC';
|
||
|
$test++;
|
||
|
|
||
|
$_ = "alpha123numeric456";
|
||
|
m/([\p{IsDigit}]+)/;
|
||
|
ok $1, '123';
|
||
|
$test++;
|
||
|
|
||
|
$_ = "alpha123numeric456";
|
||
|
m/([^\p{IsDigit}]+)/;
|
||
|
ok $1, 'alpha';
|
||
|
$test++;
|
||
|
|
||
|
$_ = ",123alpha,456numeric";
|
||
|
m/([\p{IsAlnum}]+)/;
|
||
|
ok $1, '123alpha';
|
||
|
$test++;
|
||
|
}
|
||
|
{
|
||
|
use utf8;
|
||
|
|
||
|
$_ = "\x{263A}>\x{263A}\x{263A}";
|
||
|
|
||
|
ok length, 4;
|
||
|
$test++;
|
||
|
|
||
|
ok length((m/>(.)/)[0]), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($&), 2;
|
||
|
$test++;
|
||
|
|
||
|
ok length($'), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($`), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($1), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($tmp=$&), 2;
|
||
|
$test++;
|
||
|
|
||
|
ok length($tmp=$'), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($tmp=$`), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($tmp=$1), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok $&, pack("C*", ord(">"), 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $', pack("C*", 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $`, pack("C*", 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $1, pack("C*", 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
{
|
||
|
use bytes;
|
||
|
no utf8;
|
||
|
|
||
|
ok length, 10;
|
||
|
$test++;
|
||
|
|
||
|
ok length((m/>(.)/)[0]), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($&), 2;
|
||
|
$test++;
|
||
|
|
||
|
ok length($'), 5;
|
||
|
$test++;
|
||
|
|
||
|
ok length($`), 3;
|
||
|
$test++;
|
||
|
|
||
|
ok length($1), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok $&, pack("C*", ord(">"), 0342);
|
||
|
$test++;
|
||
|
|
||
|
ok $', pack("C*", 0230, 0272, 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $`, pack("C*", 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $1, pack("C*", 0342);
|
||
|
$test++;
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
{
|
||
|
no utf8;
|
||
|
$_="\342\230\272>\342\230\272\342\230\272";
|
||
|
}
|
||
|
|
||
|
ok length, 10;
|
||
|
$test++;
|
||
|
|
||
|
ok length((m/>(.)/)[0]), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($&), 2;
|
||
|
$test++;
|
||
|
|
||
|
ok length($'), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($`), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($1), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($tmp=$&), 2;
|
||
|
$test++;
|
||
|
|
||
|
ok length($tmp=$'), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($tmp=$`), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($tmp=$1), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok $&, pack("C*", ord(">"), 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $', pack("C*", 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $`, pack("C*", 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $1, pack("C*", 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
{
|
||
|
use bytes;
|
||
|
no utf8;
|
||
|
|
||
|
ok length, 10;
|
||
|
$test++;
|
||
|
|
||
|
ok length((m/>(.)/)[0]), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok length($&), 2;
|
||
|
$test++;
|
||
|
|
||
|
ok length($'), 5;
|
||
|
$test++;
|
||
|
|
||
|
ok length($`), 3;
|
||
|
$test++;
|
||
|
|
||
|
ok length($1), 1;
|
||
|
$test++;
|
||
|
|
||
|
ok $&, pack("C*", ord(">"), 0342);
|
||
|
$test++;
|
||
|
|
||
|
ok $', pack("C*", 0230, 0272, 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $`, pack("C*", 0342, 0230, 0272);
|
||
|
$test++;
|
||
|
|
||
|
ok $1, pack("C*", 0342);
|
||
|
$test++;
|
||
|
|
||
|
}
|
||
|
}
|