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