Commit | Line | Data |
9e08bc66 |
1 | BEGIN { |
2 | if ($ENV{'PERL_CORE'}){ |
3 | chdir 't'; |
4 | @INC = '../lib'; |
5 | } |
6 | require Config; import Config; |
7 | if ($Config{'extensions'} !~ /\bEncode\b/) { |
8 | print "1..0 # Skip: Encode was not built\n"; |
9 | exit 0; |
10 | } |
11 | if (ord("A") == 193) { |
12 | print "1..0 # Skip: EBCDIC\n"; |
13 | exit 0; |
14 | } |
15 | unless (PerlIO::Layer->find('perlio')){ |
16 | print "1..0 # Skip: PerlIO required\n"; |
17 | exit 0; |
18 | } |
19 | if ($ENV{PERL_CORE_MINITEST}) { |
20 | print "1..0 # Skip: no dynamic loading on miniperl, no Encode\n"; |
21 | exit 0; |
22 | } |
23 | $| = 1; |
24 | require './test.pl'; |
25 | } |
26 | |
27 | plan tests => 94; |
28 | |
29 | use encoding "latin2"; # iso 8859-2 |
30 | |
31 | # U+00C1, \xC1, \301, LATIN CAPITAL LETTER A WITH ACUTE |
32 | # U+0102, \xC3, \402, LATIN CAPITAL LETTER A WITH BREVE |
33 | # U+00E1, \xE1, \303, LATIN SMALL LETTER A WITH ACUTE |
34 | # U+0103, \xE3, \403, LATIN SMALL LETTER A WITH BREVE |
35 | |
36 | ok("\xC1" =~ /\xC1/, '\xC1 to /\xC1/'); |
37 | ok("\x{C1}" =~ /\x{C1}/, '\x{C1} to /\x{C1}/'); |
38 | ok("\xC3" =~ /\xC3/, '\xC3 to /\xC3/'); |
39 | ok("\x{102}" =~ /\xC3/, '\x{102} to /\xC3/'); |
40 | ok("\xC3" =~ /\x{C3}/, '\xC3 to /\x{C3}/'); |
41 | ok("\x{102}" =~ /\x{C3}/, '\x{102} to /\x{C3}/'); |
42 | ok("\xC3" =~ /\x{102}/, '\xC3 to /\x{102}/'); |
43 | ok("\x{102}" =~ /\x{102}/, '\x{102} to /\x{102}/'); |
44 | |
45 | ok("\xC1" =~ /\xC1/i, '\xC1 to /\xC1/i'); |
46 | ok("\xE1" =~ /\xC1/i, '\xE1 to /\xC1/i'); |
47 | ok("\xC1" =~ /\xE1/i, '\xC1 to /\xE1/i'); |
48 | ok("\xE1" =~ /\xE1/i, '\xE1 to /\xE1/i'); |
49 | ok("\x{102}" =~ /\xC3/i, '\x{102} to /\xC3/i'); |
50 | ok("\x{103}" =~ /\xC3/i, '\x{103} to /\xC3/i'); |
51 | ok("\x{102}" =~ /\xE3/i, '\x{102} to /\xE3/i'); |
52 | ok("\x{103}" =~ /\xE3/i, '\x{103} to /\xE3/i'); |
53 | |
54 | ok("\xC1" =~ /[\xC1]/, '\xC1 to /[\xC1]/'); |
55 | ok("\x{C1}" =~ /[\x{C1}]/, '\x{C1} to /[\x{C1}]/'); |
56 | ok("\xC3" =~ /[\xC3]/, '\xC3 to /[\xC3]/'); |
57 | ok("\x{102}" =~ /[\xC3]/, '\x{102} to /[\xC3]/'); |
58 | ok("\xC3" =~ /[\x{C3}]/, '\xC3 to /[\x{C3}]/'); |
59 | ok("\x{102}" =~ /[\x{C3}]/, '\x{102} to /[\x{C3}]/'); |
60 | ok("\xC3" =~ /[\x{102}]/, '\xC3 to /[\x{102}]/'); |
61 | ok("\x{102}" =~ /[\x{102}]/, '\x{102} to /[\x{102}]/'); |
62 | |
63 | ok("\xC1" =~ /[\xC1]/i, '\xC1 to /[\xC1]/i'); |
64 | ok("\xE1" =~ /[\xC1]/i, '\xE1 to /[\xC1]/i'); |
65 | ok("\xC1" =~ /[\xE1]/i, '\xC1 to /[\xE1]/i'); |
66 | ok("\xE1" =~ /[\xE1]/i, '\xE1 to /[\xE1]/i'); |
67 | ok("\x{102}" =~ /[\xC3]/i, '\x{102} to /[\xC3]/i'); |
68 | ok("\x{103}" =~ /[\xC3]/i, '\x{103} to /[\xC3]/i'); |
69 | ok("\x{102}" =~ /[\xE3]/i, '\x{102} to /[\xE3]/i'); |
70 | ok("\x{103}" =~ /[\xE3]/i, '\x{103} to /[\xE3]/i'); |
71 | |
72 | ok("\xC1" =~ '\xC1', '\xC1 to \'\xC1\''); |
73 | ok("\xC1" =~ '\x{C1}', '\xC1 to \'\x{C1}\''); |
74 | ok("\xC3" =~ '\303', '\xC3 to \'\303\''); |
75 | ok("\xC3" =~ '\x{102}', '\xC3 to \'\x{102}\''); |
76 | ok("\xC1" =~ '[\xC1]', '\xC1 to \'[\xC1]\''); |
77 | ok("\xC1" =~ '[\x{C1}]', '\xC1 to \'[\x{C1}]\''); |
78 | ok("\xC3" =~ '[\303]', '\xC3 to \'[\303]\''); |
79 | ok("\xC3" =~ '[\x{102}]', '\xC3 to \'[\x{102}]\''); |
80 | |
81 | ok("\xC1" =~ /Á/, '\xC1 to /<A-acute>/'); |
82 | ok("\xE1" !~ /Á/, '\xE1 to /<A-acute>/'); |
83 | ok("\xC1" =~ /Á/i, '\xC1 to /<A-acute>/i'); |
84 | ok("\xE1" =~ /Á/i, '\xE1 to /<A-acute>/i'); |
85 | ok("\xC1" =~ /[Á]/, '\xC1 to /[<A-acute>]/'); |
86 | ok("\xE1" !~ /[Á]/, '\xE1 to /[<A-acute>]/'); |
87 | ok("\xC1" =~ /[Á]/i, '\xC1 to /[<A-acute>]/i'); |
88 | ok("\xE1" =~ /[Á]/i, '\xE1 to /[<A-acute>]/i'); |
89 | |
90 | ok("\xC1\xC1" =~ /Á\xC1/, '\xC1\xC1 to /<A-acute>\xC1/'); |
91 | ok("\xC1\xC1" =~ /\xC1Á/, '\xC1\xC1 to /\xC1<A-acute>/'); |
92 | ok("\xC1\xC1" =~ /Á\xC1/i, '\xC1\xC1 to /<A-acute>\xC1/i'); |
93 | ok("\xC1\xC1" =~ /\xC1Á/i, '\xC1\xC1 to /\xC1<A-acute>/i'); |
94 | ok("\xC1\xE1" =~ /Á\xC1/i, '\xC1\xE1 to /<A-acute>\xC1/i'); |
95 | ok("\xC1\xE1" =~ /\xC1Á/i, '\xC1\xE1 to /\xC1<A-acute>/i'); |
96 | ok("\xE1\xE1" =~ /Á\xC1/i, '\xE1\xE1 to /<A-acute>\xC1/i'); |
97 | ok("\xE1\xE1" =~ /\xC1Á/i, '\xE1\xE1 to /\xC1<A-acute>/i'); |
98 | |
99 | # \xDF is LATIN SMALL LETTER SHARP S |
100 | |
101 | ok("\xDF" =~ /\xDF/, '\xDF to /\xDF/'); |
102 | ok("\xDF" =~ /\xDF/i, '\xDF to /\xDF/i'); |
103 | ok("\xDF" =~ /[\xDF]/, '\xDF to /[\xDF]/'); |
104 | ok("\xDF" =~ /[\xDF]/i, '\xDF to /[\xDF]/i'); |
105 | ok("\xDF" =~ /ß/, '\xDF to /<sharp-s>/'); |
106 | ok("\xDF" =~ /ß/i, '\xDF to /<sharp-s>/i'); |
107 | ok("\xDF" =~ /[ß]/, '\xDF to /[<sharp-s>]/'); |
108 | ok("\xDF" =~ /[ß]/i, '\xDF to /[<sharp-s>]/i'); |
109 | |
110 | ok("SS" =~ /\xDF/i, 'SS to /\xDF/i'); |
111 | ok("Ss" =~ /\xDF/i, 'Ss to /\xDF/i'); |
112 | ok("sS" =~ /\xDF/i, 'sS to /\xDF/i'); |
113 | ok("ss" =~ /\xDF/i, 'ss to /\xDF/i'); |
114 | ok("SS" =~ /ß/i, 'SS to /<sharp-s>/i'); |
115 | ok("Ss" =~ /ß/i, 'Ss to /<sharp-s>/i'); |
116 | ok("sS" =~ /ß/i, 'sS to /<sharp-s>/i'); |
117 | ok("ss" =~ /ß/i, 'ss to /<sharp-s>/i'); |
118 | |
119 | ok("\xC3" =~ /\303/, '\xC1 to /\303/'); |
120 | ok("\303" =~ /\303/, '\303 to /\303/'); |
121 | ok("\xC3" =~ /\303/i, '\xC1 to /\303/i'); |
122 | ok("\xE3" =~ /\303/i, '\xC1 to /\303/i'); |
123 | ok("\xC3" =~ /[\303]/, '\xC1 to /[\303]/'); |
124 | ok("\303" =~ /[\303]/, '\303 to /[\303]/'); |
125 | ok("\xC3" =~ /[\303]/i, '\xC1 to /[\303]/i'); |
126 | ok("\xE3" =~ /[\303]/i, '\xC1 to /[\303]/i'); |
127 | |
128 | ok("\xC3" =~ /\402/, '\xC1 to /\402/'); |
129 | ok("\402" =~ /\402/, '\402 to /\402/'); |
130 | ok("\xC3" =~ /\402/i, '\xC1 to /\402/i'); |
131 | ok("\xE3" =~ /\402/i, '\xC1 to /\402/i'); |
132 | ok("\xC3" =~ /[\402]/, '\xC1 to /[\402]/'); |
133 | ok("\402" =~ /[\402]/, '\402 to /[\402]/'); |
134 | ok("\xC3" =~ /[\402]/i, '\xC1 to /[\402]/i'); |
135 | ok("\xE3" =~ /[\402]/i, '\xC1 to /[\402]/i'); |
136 | |
137 | { |
138 | my $re = '(?i:\xC1)'; |
139 | |
140 | ok("\xC1" =~ $re, '\xC1 to (?i:\xC1)'); |
141 | ok("\xE1" =~ $re, '\xE1 to (?i:\xC1)'); |
142 | |
143 | utf8::downgrade($re); |
144 | |
145 | ok("\xC1" =~ $re, '\xC1 to (?i:\xC1) down'); |
146 | ok("\xE1" =~ $re, '\xE1 to (?i:\xC1) down'); |
147 | |
148 | utf8::upgrade($re); |
149 | |
150 | ok("\xC1" =~ $re, '\xC1 to (?i:\xC1) up'); |
151 | ok("\xE1" =~ $re, '\xE1 to (?i:\xC1) up'); |
152 | } |
153 | |