Integrate with Sarathy.
[p5sagit/p5-mst-13.2.git] / t / pragma / utf8.t
CommitLineData
f96ec2a2 1#!./perl
2
3BEGIN {
4 chdir 't' if -d 't';
5 unshift @INC, '../lib';
6 $ENV{PERL5LIB} = '../lib';
f70c35af 7 if ( ord("\t") != 9 ) { # skip on ebcdic platforms
8 print "1..0 # Skip utf8 tests on ebcdic platform.\n";
9 exit;
10 }
f96ec2a2 11}
12
a197cbdd 13print "1..60\n";
f96ec2a2 14
15my $test = 1;
16
17sub ok {
18 my ($got,$expect) = @_;
19 print "# expected [$expect], got [$got]\nnot " if $got ne $expect;
20 print "ok $test\n";
21}
22
23{
24 use utf8;
25 $_ = ">\x{263A}<";
26 s/([\x{80}-\x{10ffff}])/"&#".ord($1).";"/eg;
27 ok $_, '>&#9786;<';
92d29cee 28 $test++; # 1
f96ec2a2 29
30 $_ = ">\x{263A}<";
31 my $rx = "\x{80}-\x{10ffff}";
32 s/([$rx])/"&#".ord($1).";"/eg;
33 ok $_, '>&#9786;<';
92d29cee 34 $test++; # 2
f96ec2a2 35
36 $_ = ">\x{263A}<";
37 my $rx = "\\x{80}-\\x{10ffff}";
38 s/([$rx])/"&#".ord($1).";"/eg;
39 ok $_, '>&#9786;<';
92d29cee 40 $test++; # 3
b8c5462f 41
42 $_ = "alpha,numeric";
43 m/([[:alpha:]]+)/;
44 ok $1, 'alpha';
92d29cee 45 $test++; # 4
b8c5462f 46
47 $_ = "alphaNUMERICstring";
48 m/([[:^lower:]]+)/;
49 ok $1, 'NUMERIC';
92d29cee 50 $test++; # 5
b8c5462f 51
52 $_ = "alphaNUMERICstring";
53 m/(\p{Ll}+)/;
54 ok $1, 'alpha';
92d29cee 55 $test++; # 6
b8c5462f 56
57 $_ = "alphaNUMERICstring";
58 m/(\p{Lu}+)/;
59 ok $1, 'NUMERIC';
92d29cee 60 $test++; # 7
b8c5462f 61
62 $_ = "alpha,numeric";
63 m/([\p{IsAlpha}]+)/;
64 ok $1, 'alpha';
92d29cee 65 $test++; # 8
b8c5462f 66
67 $_ = "alphaNUMERICstring";
68 m/([^\p{IsLower}]+)/;
69 ok $1, 'NUMERIC';
92d29cee 70 $test++; # 9
b8c5462f 71
0f4b6630 72 $_ = "alpha123numeric456";
73 m/([\p{IsDigit}]+)/;
74 ok $1, '123';
92d29cee 75 $test++; # 10
b8c5462f 76
0f4b6630 77 $_ = "alpha123numeric456";
78 m/([^\p{IsDigit}]+)/;
79 ok $1, 'alpha';
92d29cee 80 $test++; # 11
b8c5462f 81
0f4b6630 82 $_ = ",123alpha,456numeric";
83 m/([\p{IsAlnum}]+)/;
84 ok $1, '123alpha';
92d29cee 85 $test++; # 12
0f4b6630 86}
a197cbdd 87{
88 use utf8;
89
90 $_ = "\x{263A}>\x{263A}\x{263A}";
91
92 ok length, 4;
92d29cee 93 $test++; # 13
a197cbdd 94
95 ok length((m/>(.)/)[0]), 1;
92d29cee 96 $test++; # 14
a197cbdd 97
98 ok length($&), 2;
92d29cee 99 $test++; # 15
a197cbdd 100
101 ok length($'), 1;
92d29cee 102 $test++; # 16
a197cbdd 103
104 ok length($`), 1;
92d29cee 105 $test++; # 17
a197cbdd 106
107 ok length($1), 1;
92d29cee 108 $test++; # 18
a197cbdd 109
110 ok length($tmp=$&), 2;
92d29cee 111 $test++; # 19
a197cbdd 112
113 ok length($tmp=$'), 1;
92d29cee 114 $test++; # 20
a197cbdd 115
116 ok length($tmp=$`), 1;
92d29cee 117 $test++; # 21
a197cbdd 118
119 ok length($tmp=$1), 1;
92d29cee 120 $test++; # 22
a197cbdd 121
92d29cee 122 {
123 use bytes;
124
125 my $tmp = $&;
126 ok $tmp, pack("C*", ord(">"), 0342, 0230, 0272);
127 $test++; # 23
a197cbdd 128
92d29cee 129 $tmp = $';
130 ok $tmp, pack("C*", 0342, 0230, 0272);
131 $test++; # 24
a197cbdd 132
92d29cee 133 $tmp = $`;
134 ok $tmp, pack("C*", 0342, 0230, 0272);
135 $test++; # 25
a197cbdd 136
92d29cee 137 $tmp = $1;
138 ok $tmp, pack("C*", 0342, 0230, 0272);
139 $test++; # 26
140 }
a197cbdd 141
142 {
143 use bytes;
144 no utf8;
145
146 ok length, 10;
92d29cee 147 $test++; # 27
a197cbdd 148
149 ok length((m/>(.)/)[0]), 1;
92d29cee 150 $test++; # 28
a197cbdd 151
152 ok length($&), 2;
92d29cee 153 $test++; # 29
a197cbdd 154
155 ok length($'), 5;
92d29cee 156 $test++; # 30
a197cbdd 157
158 ok length($`), 3;
92d29cee 159 $test++; # 31
a197cbdd 160
161 ok length($1), 1;
92d29cee 162 $test++; # 32
a197cbdd 163
164 ok $&, pack("C*", ord(">"), 0342);
92d29cee 165 $test++; # 33
a197cbdd 166
167 ok $', pack("C*", 0230, 0272, 0342, 0230, 0272);
92d29cee 168 $test++; # 34
a197cbdd 169
170 ok $`, pack("C*", 0342, 0230, 0272);
92d29cee 171 $test++; # 35
a197cbdd 172
173 ok $1, pack("C*", 0342);
92d29cee 174 $test++; # 36
a197cbdd 175
176 }
177
178
179 {
180 no utf8;
181 $_="\342\230\272>\342\230\272\342\230\272";
182 }
183
184 ok length, 10;
92d29cee 185 $test++; # 37
a197cbdd 186
187 ok length((m/>(.)/)[0]), 1;
92d29cee 188 $test++; # 38
a197cbdd 189
190 ok length($&), 2;
92d29cee 191 $test++; # 39
a197cbdd 192
193 ok length($'), 1;
92d29cee 194 $test++; # 40
a197cbdd 195
196 ok length($`), 1;
92d29cee 197 $test++; # 41
a197cbdd 198
199 ok length($1), 1;
92d29cee 200 $test++; # 42
a197cbdd 201
202 ok length($tmp=$&), 2;
92d29cee 203 $test++; # 43
a197cbdd 204
205 ok length($tmp=$'), 1;
92d29cee 206 $test++; # 44
a197cbdd 207
208 ok length($tmp=$`), 1;
92d29cee 209 $test++; # 45
a197cbdd 210
211 ok length($tmp=$1), 1;
92d29cee 212 $test++; # 46
a197cbdd 213
92d29cee 214 {
215 use bytes;
a197cbdd 216
92d29cee 217 my $tmp = $&;
218 ok $tmp, pack("C*", ord(">"), 0342, 0230, 0272);
219 $test++; # 47
a197cbdd 220
92d29cee 221 $tmp = $';
222 ok $tmp, pack("C*", 0342, 0230, 0272);
223 $test++; # 48
a197cbdd 224
92d29cee 225 $tmp = $`;
226 ok $tmp, pack("C*", 0342, 0230, 0272);
227 $test++; # 49
a197cbdd 228
92d29cee 229 $tmp = $1;
230 ok $tmp, pack("C*", 0342, 0230, 0272);
231 $test++; # 50
232 }
a197cbdd 233 {
234 use bytes;
235 no utf8;
236
237 ok length, 10;
92d29cee 238 $test++; # 51
a197cbdd 239
240 ok length((m/>(.)/)[0]), 1;
92d29cee 241 $test++; # 52
a197cbdd 242
243 ok length($&), 2;
92d29cee 244 $test++; # 53
a197cbdd 245
246 ok length($'), 5;
92d29cee 247 $test++; # 54
a197cbdd 248
249 ok length($`), 3;
92d29cee 250 $test++; # 55
a197cbdd 251
252 ok length($1), 1;
92d29cee 253 $test++; # 56
a197cbdd 254
255 ok $&, pack("C*", ord(">"), 0342);
92d29cee 256 $test++; # 57
a197cbdd 257
258 ok $', pack("C*", 0230, 0272, 0342, 0230, 0272);
92d29cee 259 $test++; # 58
a197cbdd 260
261 ok $`, pack("C*", 0342, 0230, 0272);
92d29cee 262 $test++; # 59
a197cbdd 263
264 ok $1, pack("C*", 0342);
92d29cee 265 $test++; # 60
a197cbdd 266
267 }
268}