xref: /freebsd/contrib/one-true-awk/testdir/T.re (revision 23f24377b1a9ab6677f00f2302484d6658d94cab)
1*23f24377SWarner Loshecho T.re: tests of regular expression code
2*23f24377SWarner Losh
3*23f24377SWarner Loshawk '
4*23f24377SWarner LoshBEGIN {
5*23f24377SWarner Losh	FS = "\t"
6*23f24377SWarner Losh	awk = "../a.out"
7*23f24377SWarner Losh}
8*23f24377SWarner LoshNF == 0 {
9*23f24377SWarner Losh	next
10*23f24377SWarner Losh}
11*23f24377SWarner Losh$1 != "" {	# new test
12*23f24377SWarner Losh	re = $1
13*23f24377SWarner Losh}
14*23f24377SWarner Losh$2 != "" {	# either ~ or !~
15*23f24377SWarner Losh	op = $2
16*23f24377SWarner Losh	if (op == "~")
17*23f24377SWarner Losh		neg = "!"
18*23f24377SWarner Losh	else if (op == "!~")
19*23f24377SWarner Losh		neg = ""
20*23f24377SWarner Losh}
21*23f24377SWarner Losh$3 != "" {	# new test string
22*23f24377SWarner Losh	str = $3
23*23f24377SWarner Losh}
24*23f24377SWarner Losh$3 == "\"\"" {	# explicit empty line
25*23f24377SWarner Losh	$3 = ""
26*23f24377SWarner Losh}
27*23f24377SWarner LoshNF > 2 {	# generate a test
28*23f24377SWarner Losh	input = $3
29*23f24377SWarner Losh	test = sprintf("./echo '"'"'%s'"'"' | %s '"'"'%s/%s/ {print \"%d fails %s %s %s\"}'"'"'",
30*23f24377SWarner Losh		input, awk, neg, re, NR, re, op, input)
31*23f24377SWarner Losh	# printf(" %3d   %s %s %s:\n", NR, re, op, input)
32*23f24377SWarner Losh	# print "test is |" test "|"
33*23f24377SWarner Losh	system(test)
34*23f24377SWarner Losh	# system("bprint -c ../a.out")
35*23f24377SWarner Losh	nt++
36*23f24377SWarner Losh}
37*23f24377SWarner LoshEND { print "	" nt, "tests" }
38*23f24377SWarner Losh' <<\!!!!
39*23f24377SWarner Losh	~	a
40*23f24377SWarner Losh		aa
41*23f24377SWarner Losh		aaa
42*23f24377SWarner Losh		""
43*23f24377SWarner Losha	~	a
44*23f24377SWarner Losh		ba
45*23f24377SWarner Losh		bab
46*23f24377SWarner Losh	!~	""
47*23f24377SWarner Losh		x
48*23f24377SWarner Losh		xxxxx
49*23f24377SWarner Losh=	~	=
50*23f24377SWarner Losh		b=
51*23f24377SWarner Losh		b=b
52*23f24377SWarner Losh	!~	""
53*23f24377SWarner Losh		x
54*23f24377SWarner Losh		xxxxx
55*23f24377SWarner Losh.	~	x
56*23f24377SWarner Losh		xxx
57*23f24377SWarner Losh	!~	""
58*23f24377SWarner Losh.a	~	xa
59*23f24377SWarner Losh		xxa
60*23f24377SWarner Losh		xax
61*23f24377SWarner Losh	!~	a
62*23f24377SWarner Losh		ax
63*23f24377SWarner Losh		""
64*23f24377SWarner Losh$	~	x
65*23f24377SWarner Losh		""
66*23f24377SWarner Losh.$	~	x
67*23f24377SWarner Losh		xx
68*23f24377SWarner Losh	!~	""
69*23f24377SWarner Losha$	~	a
70*23f24377SWarner Losh		ba
71*23f24377SWarner Losh		bbba
72*23f24377SWarner Losh	!~	ab
73*23f24377SWarner Losh		x
74*23f24377SWarner Losh		""
75*23f24377SWarner Losh^	~	x
76*23f24377SWarner Losh		""
77*23f24377SWarner Losh		^
78*23f24377SWarner Losh^a$	~	a
79*23f24377SWarner Losh	!~	xa
80*23f24377SWarner Losh		ax
81*23f24377SWarner Losh		xax
82*23f24377SWarner Losh		""
83*23f24377SWarner Losh^a.$	~	ax
84*23f24377SWarner Losh		aa
85*23f24377SWarner Losh	!~	xa
86*23f24377SWarner Losh		aaa
87*23f24377SWarner Losh		axy
88*23f24377SWarner Losh		""
89*23f24377SWarner Losh^$	~	""
90*23f24377SWarner Losh	!~	x
91*23f24377SWarner Losh		^
92*23f24377SWarner Losh^.a	~	xa
93*23f24377SWarner Losh		xaa
94*23f24377SWarner Losh	!~	a
95*23f24377SWarner Losh		""
96*23f24377SWarner Losh^.*a	~	a
97*23f24377SWarner Losh		xa
98*23f24377SWarner Losh		xxxxxxa
99*23f24377SWarner Losh	!~	""
100*23f24377SWarner Losh^.+a	~	xa
101*23f24377SWarner Losh		xxxxxxa
102*23f24377SWarner Losh	!~	""
103*23f24377SWarner Losh		a
104*23f24377SWarner Losh		ax
105*23f24377SWarner Losha*	~	""
106*23f24377SWarner Losh		a
107*23f24377SWarner Losh		aaaa
108*23f24377SWarner Losh		xa
109*23f24377SWarner Losh		xxxx
110*23f24377SWarner Loshaa*	~	a
111*23f24377SWarner Losh		aaa
112*23f24377SWarner Losh		xa
113*23f24377SWarner Losh	!~	xxxx
114*23f24377SWarner Losh		""
115*23f24377SWarner Losh\$	~	x$
116*23f24377SWarner Losh		$
117*23f24377SWarner Losh		$x
118*23f24377SWarner Losh		x$x
119*23f24377SWarner Losh	!~	""
120*23f24377SWarner Losh		x
121*23f24377SWarner Losh\.	~	.
122*23f24377SWarner Losh	!~	x
123*23f24377SWarner Losh		""
124*23f24377SWarner Loshxr+y	~	xry
125*23f24377SWarner Losh		xrry
126*23f24377SWarner Losh		xrrrrrry
127*23f24377SWarner Losh	!~	ry
128*23f24377SWarner Losh		xy
129*23f24377SWarner Losh		xr
130*23f24377SWarner Loshxr?y	~	xy
131*23f24377SWarner Losh		xry
132*23f24377SWarner Losh	!~	xrry
133*23f24377SWarner Losha?b?c?	~	""
134*23f24377SWarner Losh		x
135*23f24377SWarner Losh^a?b?x	~	x
136*23f24377SWarner Losh		ax
137*23f24377SWarner Losh		bx
138*23f24377SWarner Losh		abx
139*23f24377SWarner Losh		xa
140*23f24377SWarner Losh	!~	""
141*23f24377SWarner Losh		ab
142*23f24377SWarner Losh		aba
143*23f24377SWarner Losh[0-9]	~	1
144*23f24377SWarner Losh		567
145*23f24377SWarner Losh		x0y
146*23f24377SWarner Losh	!~	abc
147*23f24377SWarner Losh		""
148*23f24377SWarner Losh[^0-9]	!~	1
149*23f24377SWarner Losh		567
150*23f24377SWarner Losh		""
151*23f24377SWarner Losh	~	abc
152*23f24377SWarner Losh		x0y
153*23f24377SWarner Losh[0-25-69]	~	0
154*23f24377SWarner Losh		1
155*23f24377SWarner Losh		2
156*23f24377SWarner Losh		5
157*23f24377SWarner Losh		6
158*23f24377SWarner Losh		9
159*23f24377SWarner Losh	!~	3
160*23f24377SWarner Losh		4
161*23f24377SWarner Losh		7
162*23f24377SWarner Losh		8
163*23f24377SWarner Losh[[:lower:]]	~	a
164*23f24377SWarner Losh		b
165*23f24377SWarner Losh		z
166*23f24377SWarner Losh	!~	A
167*23f24377SWarner Losh		Z
168*23f24377SWarner Losh		1
169*23f24377SWarner Losh		:
170*23f24377SWarner Losh		[
171*23f24377SWarner Losh		]
172*23f24377SWarner Losh[[:upper:]]	~	A
173*23f24377SWarner Losh		B
174*23f24377SWarner Losh		Z
175*23f24377SWarner Losh	!~	a
176*23f24377SWarner Losh		z
177*23f24377SWarner Losh		1
178*23f24377SWarner Losh		:
179*23f24377SWarner Losh		[
180*23f24377SWarner Losh		]
181*23f24377SWarner Losh[[:digit:]]	~	0
182*23f24377SWarner Losh		1
183*23f24377SWarner Losh		9
184*23f24377SWarner Losh	!~	d
185*23f24377SWarner Losh		:
186*23f24377SWarner Losh		[
187*23f24377SWarner Losh		]
188*23f24377SWarner Loshx[0-9]+y	~	x0y
189*23f24377SWarner Losh		x23y
190*23f24377SWarner Losh		x12345y
191*23f24377SWarner Losh	!~	0y
192*23f24377SWarner Losh		xy
193*23f24377SWarner Loshx[0-9]?y	~	xy
194*23f24377SWarner Losh		x1y
195*23f24377SWarner Losh	!~	x23y
196*23f24377SWarner Loshx[[]y	~	x[y
197*23f24377SWarner Losh	!~	xy
198*23f24377SWarner Losh		x[[]y
199*23f24377SWarner Losh		x]y
200*23f24377SWarner Loshx[[-]y	~	x[y
201*23f24377SWarner Losh		x-y
202*23f24377SWarner Losh	!~	xy
203*23f24377SWarner Losh		x[[]y
204*23f24377SWarner Losh		x]y
205*23f24377SWarner Loshx[[-a]y	~	x[y
206*23f24377SWarner Losh		xay
207*23f24377SWarner Losh		x]y
208*23f24377SWarner Losh	!~	xy
209*23f24377SWarner Losh		x[[]y
210*23f24377SWarner Losh		x-y
211*23f24377SWarner Loshx[]-a]y	~	x]y
212*23f24377SWarner Losh		xay
213*23f24377SWarner Losh	!~	xy
214*23f24377SWarner Losh		x[y
215*23f24377SWarner Losh		x-y
216*23f24377SWarner Loshx[]]y	~	x]y
217*23f24377SWarner Losh	!~	xy
218*23f24377SWarner Losh		x[]]y
219*23f24377SWarner Losh		x[y
220*23f24377SWarner Loshx[^[]y	~	xay
221*23f24377SWarner Losh	!~	x[y
222*23f24377SWarner Loshx[-]y	~	x-y
223*23f24377SWarner Losh	!~	xy
224*23f24377SWarner Losh		x+y
225*23f24377SWarner Loshx[^-]y	~	x+y
226*23f24377SWarner Losh	!~	x-y
227*23f24377SWarner Losh		xy
228*23f24377SWarner Loshx[][]y	~	x[y
229*23f24377SWarner Losh		x]y
230*23f24377SWarner Losh	!~	xy
231*23f24377SWarner Losh		x][y
232*23f24377SWarner Losh		x[]y
233*23f24377SWarner Loshx[z-a]y	~	xy
234*23f24377SWarner Losh	!~	x
235*23f24377SWarner Losh		y
236*23f24377SWarner Losh		xay
237*23f24377SWarner Losh		xzy
238*23f24377SWarner Losh		x-y
239*23f24377SWarner Losh[0\-9]	~	0
240*23f24377SWarner Losh		-
241*23f24377SWarner Losh		9
242*23f24377SWarner Losh	!~	1
243*23f24377SWarner Losh		""
244*23f24377SWarner Losh[-1]	~	-
245*23f24377SWarner Losh		1
246*23f24377SWarner Losh	!~	0
247*23f24377SWarner Losh[0-]	~	0
248*23f24377SWarner Losh		-
249*23f24377SWarner Losh	!~	1
250*23f24377SWarner Losh[^-0]	~	x
251*23f24377SWarner Losh		^
252*23f24377SWarner Losh	!~	-
253*23f24377SWarner Losh		0
254*23f24377SWarner Losh		""
255*23f24377SWarner Losh[^0-]	~	x
256*23f24377SWarner Losh		^
257*23f24377SWarner Losh	!~	-
258*23f24377SWarner Losh		0
259*23f24377SWarner Losh		""
260*23f24377SWarner Loshx|y	~	x
261*23f24377SWarner Losh		y
262*23f24377SWarner Losh		xy
263*23f24377SWarner Losh	!~	a
264*23f24377SWarner Losh		""
265*23f24377SWarner Losh^abc|xyz$	~	abc
266*23f24377SWarner Losh		abcd
267*23f24377SWarner Losh		axyz
268*23f24377SWarner Losh		xyz
269*23f24377SWarner Losh	!~	xabc
270*23f24377SWarner Losh		xyza
271*23f24377SWarner Losh^(abc|xyz)$	~	abc
272*23f24377SWarner Losh		xyz
273*23f24377SWarner Losh	!~	abcxyz
274*23f24377SWarner Losh		abcx
275*23f24377SWarner Losh		cxyz
276*23f24377SWarner Losh^x\|y$	~	x|y
277*23f24377SWarner Losh	!~	xy
278*23f24377SWarner Losh^x\\y$	~	x\y
279*23f24377SWarner Losh	!~	xy
280*23f24377SWarner Losh		x\\y
281*23f24377SWarner Losh		xay
282*23f24377SWarner Losh\141\142	~	ab
283*23f24377SWarner Losh		xab
284*23f24377SWarner Losh		abx
285*23f24377SWarner Losh	!~	a
286*23f24377SWarner Losh		b
287*23f24377SWarner Losh		ax
288*23f24377SWarner Losh		axb
289*23f24377SWarner Loshx\056y	~	x.y
290*23f24377SWarner Losh	!~	x.
291*23f24377SWarner Losh		.x
292*23f24377SWarner Losh		xxx
293*23f24377SWarner Losh		xby  because \056 is not the metacharacter .
294*23f24377SWarner Losh		xcy  ditto
295*23f24377SWarner Losh[\60-\62\65-6\71]	~	0
296*23f24377SWarner Losh		1
297*23f24377SWarner Losh		2
298*23f24377SWarner Losh		5
299*23f24377SWarner Losh		6
300*23f24377SWarner Losh		9
301*23f24377SWarner Losh	!~	3
302*23f24377SWarner Losh		4
303*23f24377SWarner Losh		7
304*23f24377SWarner Losh		8
305*23f24377SWarner Losh[\60-2\65-6\71]	~	0
306*23f24377SWarner Losh		1
307*23f24377SWarner Losh		2
308*23f24377SWarner Losh		5
309*23f24377SWarner Losh		6
310*23f24377SWarner Losh		9
311*23f24377SWarner Losh	!~	3
312*23f24377SWarner Losh		4
313*23f24377SWarner Losh		7
314*23f24377SWarner Losh		8
315*23f24377SWarner Losh[\x30-\x32\x35-6\71]	~	0
316*23f24377SWarner Losh		1
317*23f24377SWarner Losh		2
318*23f24377SWarner Losh		5
319*23f24377SWarner Losh		6
320*23f24377SWarner Losh		9
321*23f24377SWarner Losh	!~	3
322*23f24377SWarner Losh		4
323*23f24377SWarner Losh		7
324*23f24377SWarner Losh		8
325*23f24377SWarner Losh[\x30-2\x35-6\x39]	~	0
326*23f24377SWarner Losh		1
327*23f24377SWarner Losh		2
328*23f24377SWarner Losh		5
329*23f24377SWarner Losh		6
330*23f24377SWarner Losh		9
331*23f24377SWarner Losh	!~	3
332*23f24377SWarner Losh		4
333*23f24377SWarner Losh		7
334*23f24377SWarner Losh		8
335*23f24377SWarner Losh\f	!~	x
336*23f24377SWarner Losh\b	!~	x
337*23f24377SWarner Losh\r	!~	x
338*23f24377SWarner Losh\n	!~	x
339*23f24377SWarner Losh...)	~	abc)
340*23f24377SWarner Losh!!!!
341