1echo T.utfre: tests of regular expression code for Unicode/utf-8
2# adapted from T.re
3
4awk '
5BEGIN {
6	FS = "\t"
7	awk = "../a.out"
8}
9NF == 0 {
10	next
11}
12$1 != "" {	# new test
13	re = $1
14}
15$2 != "" {	# either ~ or !~
16	op = $2
17	if (op == "~")
18		neg = "!"
19	else if (op == "!~")
20		neg = ""
21}
22$3 != "" {	# new test string
23	str = $3
24}
25$3 == "\"\"" {	# explicit empty line
26	$3 = ""
27}
28NF > 2 {	# generate a test
29	input = $3
30	test = sprintf("./echo '"'"'%s'"'"' | %s '"'"'%s/%s/ {print \"%d fails %s %s %s\"}'"'"'",
31		input, awk, neg, re, NR, re, op, input)
32	# printf(" %3d   %s %s %s:\n", NR, re, op, input)
33	# print "test is |" test "|"
34	system(test)
35	# system("bprint -c ../a.out")
36	nt++
37}
38END { print "	" nt, "tests" }
39' <<\!!!!
40	~	��
41		����
42		������
43		""
44��	~	��
45		b��
46		b��b
47	!~	""
4849		xxxxx
50.	~	时
51		x时x
52		��
53	!~	""
54.の	~	xの
55		xxの
56		xのx
57	!~	の
58		のx
59		""
60$	~	x
61		��
62		""
63.$	~	모
64		xx모
65		x모x
66	!~	""
67д$	~	д
6869		bbbд
70	!~	дb
71		x
72		""
73^	~	и
74		""
75		^
76^λ$	~	λ
77	!~	xλ
78		λx
79		xλx
80		""
81^λ.$	~	λx
82		λλ
83	!~	xλ
84		λλλ
85		λxy
86		""
87^$	~	""
88	!~	に
89		^
90^.해	~	め해
91		め해해
92	!~	해
93		""
94^.*해	~	해
95		め해
96		めめめめめめ해
97	!~	""
98^.+해	~	め해
99		めめめめめめ해
100	!~	""
101102		해め
103해*	~	""
104105		해해해해
106		め해
107		めめめめ
108해해*	~	해
109		해해해
110		め해
111	!~	めめめめ
112		""
113\$	~	��$
114		$
115		$��
116		��$��
117	!~	""
118		��
119\.	~	.
120	!~	��
121		""
122xθ+y	~	xθy
123		xθθy
124		xθθθθθθy
125	!~	θy
126		xy
127128xθ?y	~	xy
129		xθy
130	!~	xθθy
131θ?b?の?	~	""
132		x
133^a?b?め	~	め
134		aめ
135		bめ
136		abめ
137		めa
138	!~	""
139		ab
140		aba
141[Α-Ω]	~	Α
142		aΔb
143		xyΩ
144	!~	abc
145		β
146		""
147[^Α-Ω]	~	δ
148		aΔb
149		xyΩ
150	!~	Α
151		Δ
152		""
153[Α-ΔΦ-Ω]	~	Α
154		Β
155		Δ
156		Φ
157		Ω
158	!~	Π
159		Σ
160Π[[:lower:]]+	~	Πa
161		Πab
162	!~	Π
163		ΠX
164		Π:
165		Π[
166		Π]
167の[0-9]+に	~	の0に
168		の23に
169		の12345に
170	!~	0に
171		のに
172の[0-9]?に	~	のに
173		の1に
174	!~	の23に
175の[[]に	~	の[に
176	!~	のに
177		の[[]に
178		の]に
179の[[-]に	~	の[に
180		の-に
181	!~	のに
182		の[[]に
183		の]に
184の[[-a]に	~	の[に
185		のaに
186		の]に
187	!~	のに
188		の[[]に
189		の-に
190の[]-a]に	~	の]に
191		のaに
192	!~	のに
193		の[に
194		の-に
195の[]]に	~	の]に
196	!~	のに
197		の[]]に
198		の[に
199の[^[]に	~	のaに
200	!~	の[に
201の[-]に	~	の-に
202	!~	のに
203		の+に
204の[^-]に	~	の+に
205	!~	の-に
206		のに
207の[][]に	~	の[に
208		の]に
209	!~	のに
210		の][に
211		の[]に
212の[z-a]に	~	のに
213	!~	の
214215		のaに
216		のzに
217		の-に
218に|だ	~	だ
219220		だに
221	!~	a
222		""
223^στο|τους$	~	στο
224		στοd
225		aτους
226		τους
227	!~	xστο
228		τουςa
229^(στο|τους)$	~	στο
230		τους
231	!~	στοτους
232		στοx
233		cτους
234!!!!
235