echo T.sub: tests of sub and gsub code

# input lines are of form
#	pattern  replacement  input-string  sub-output  gsub-output

awk '
BEGIN {
	FS = "\t"
	awk = "../a.out"
}
NF == 0		{ next }
$1 ~ /^#/	{ next }

$1 != "" {	# new pattern
	pat = $1
}
$2 != "" {	# new replacement
	repl = $2
}
$3 != "" {	# new input string
	str = $3
}
$4 != "" {	# new sub output
	subout = $4
}
$5 != "" {	# new gsub output
	gsubout = $5
}
NF < 5 {	# weird input line
	printf("weird test spec `%s` ignored\n", $0) | "cat 1>&2"
	next
}
{		# "" => explicitly empty
	# printf(" %3d:   %s %s %s %s %s:\n", NR, pat, repl, str, subout, gsubout)
	if (pat == "\"\"") pat = ""
	if (repl == "\"\"") repl = ""
	if (str == "\"\"") str = ""
	if (subout == "\"\"") subout = ""
	if (gsubout == "\"\"") gsubout = ""
}
{		# generate a test
	nt++
	gsub(/\\/, "&&", repl)	# in case of \ enclosed
	test = sprintf("echo '"'"'%s'"'"' | %s '"'\n"'", str, awk) \
	  sprintf("{ temp = $0; sub(/%s/, \"%s\", temp)\n", pat, repl) \
	  sprintf("  if (temp != \"%s\") print \" sub %d fails:\", temp, \"should be %s in %s\"\n",
		subout, nt, subout, (pat " " repl " " str " " subout)) \
	  sprintf("  gsub(/%s/, \"%s\")\n", pat, repl) \
	  sprintf("  if ($0 != \"%s\") print \"gsub %d fails:\", $0, \"should be %s in %s\"\n}",
		gsubout, nt, gsubout, (pat " " repl " " str " " gsubout)) \
	  "'" '"'"
	# if (nt >= 55) print "test is: " test
	system(test)
	# system("bprint -c ../a.out")
}
END { print nt, "tests" }

' <<\!!!!
a	x	aaa	xaa	xxx
		axa	xxa	xxx
		bbb	bbb	bbb
		""	""	""
a	xy	aaa	xyaa	xyxyxy
		axa	xyxa	xyxxy
		bbb	bbb	bbb
		""	""	""
.	x	aaa	xaa	xxx
		axa	xxa	xxx
		bbb	xbb	xxx
		""	""	""
.a	x	a	a	a
		ax	ax	ax
		aa	x	x
		aaab	xab	xab
		aaaa	xaa	xx
		""	""	""
$	x	a	ax	ax
		""	x	x
.$	x	""	""	""
		a	x	x
		ab	ax	ax
a$	x	""	""	""
		a	x	x
		b	b	b
		ab	ab	ab
^	x	""	x	x
		a	xa	xa
^a$	xx	a	xx	xx
		""	""	""
		b	b	b
		aa	aa	aa
^a.$	xy	a	a	a
		""	""	""
		ab	xy	xy
		ba	ba	ba
^$	x	""	x	x
		a	a	a
^.a	x	aa	x	x
		ba	x	x
		ab	ab	ab
		a	a	a	
^.*a	xy	""	""	""
		a	xy	xy
		b	b	b
		ba	xy	xy
^.+a	xy	""	""	""
		a	a	a
		bb	bb	bb
		ba	xy	xy
a	&x&y	a	axay	axay
		aa	axaya	axayaxay

a*	x	""	x	x
		z	xz	xzx
		az	xz	xzx
		aza	xza	xzx
	b	xxx	bxxx	bxbxbxb
	x&	paq	xpaq	xpxaqx
	x\&	paq	x&paq	x&px&qx&
	x&y	paq	xypaq	xypxayqxy
	x\&y	paq	x&ypaq	x&ypx&yqx&y
a+	x&	paq	pxaq	pxaq
	x\&	paq	px&q	px&q
	x&y	paq	pxayq	pxayq
	x\&y	paq	px&yq	px&yq
aa*	x	a	x	x
		aa	x	x
		wawa	wxwa	wxwx
\$	x	""	""	""
		a	a	a
		a$	ax	ax
		$$$	x$$	xxx
		z$z$z	zxz$z	zxzxz
\.	x	""	""	""
		a	a	a
		a.	ax	ax
		...	x..	xxx
		z.z.z	zxz.z	zxzxz
xr+y	q	xy	xy	xy
		xry	q	q
		xrry	q	q
		xryWxry	qWxry	qWq
xr?y	q	AxyB	AqB	AqB
		AxryB	AqB	AqB
		Axrry	Axrry	Axrry
a?b?c?	x	""	x	x
		a	x	x
		b	x	x
		c	x	x
		ac	x	x
		acc	xc	xx
^a?b?q	x	""	""	""
		q	x	x
		a	a	a
		aq	x	x
		bq	x	x
		abq	x	x
		qab	xab	xab
		abqabq	xabq	xabq
[0-9]	xyz	0	xyz	xyz
		00	xyz0	xyzxyz
		000	xyz00	xyzxyzxyz
		0a	xyza	xyza
		a0	axyz	axyz
		0a0	xyza0	xyzaxyz
		xx	xx	xx
		""	""	""
^[0-9]	xyz	0	xyz	xyz
		00	xyz0	xyz0
		000	xyz00	xyz00
		0a	xyza	xyza
		a0	a0	a0
		xx	xx	xx
		""	""	""
[0-9]$	xyz	0	xyz	xyz
		00	0xyz	0xyz
		000	00xyz	00xyz
		0a	0a	0a
		a0	axyz	axyz
		xx	xx	xx
		""	""	""
[0-9]*	xyz	0	xyz	xyz
		000	xyz	xyz
		0a	xyza	xyzaxyz
		a0	xyza0	xyzaxyz
		0a0	xyza0	xyzaxyz
		pq	xyzpq	xyzpxyzqxyz
		""	xyz	xyz

""	<&>	abc	<>abc	<>a<>b<>c<>	fixed 2/07, we think
""	<\&>	abc	<&>abc	<&>a<&>b<&>c<&>
""	<&&>	abc	<>abc	<>a<>b<>c<>
""	<&>	""	<>	<>

d?abc	<&>	abc	<abc>	<abc>
d?	<&>	abc	<>abc	<>a<>b<>c<>

x[0-9]+y	Q	xy	xy	xy	no change
		x0y	Q	Q
		x12y	Q	Q
		x1y2	Q2	Q2
		x1yax23y	Qax23y	QaQ

# x[0-9]?y	~	xy
# 		x1y
# 	!~	x23y
# x[[]y	~	x[y
# 	!~	xy
# 		x[[]y
# 		x]y
# x[^[]y	~	xay
# 	!~	x[y
# x[-]y	~	x-y
# 	!~	xy
# 		x+y
# x[^-]y	~	x+y
# 	!~	x-y
# 		xy
# [0\-9]	~	0
# 		-
# 		9
# 	!~	1
# 		""
# [-1]	~	-
# 		1
# 	!~	0
# [0-]	~	0
# 		-
# 	!~	1
# [^-0]	~	x
# 		^
# 	!~	-
# 		0
# 		""
# [^0-]	~	x
# 		^
# 	!~	-
# 		0
# 		""
# x|y	~	x
# 		y
# 		xy
# 	!~	a
# 		""
# ^abc|xyz$	~	abc
# 		abcd
# 		axyz
# 		xyz
# 	!~	xabc
# 		xyza
# ^(abc|xyz)$	~	abc
# 		xyz
# 	!~	abcxyz
# 		abcx
# 		cxyz
# ^x\|y$	~	x|y
# 	!~	xy
# ^x\\y$	~	x\y
# 	!~	xy
# 		x\\y
# 		xay
# \141\142	~	ab
# 		xab
# 		abx
# 	!~	a
# 		b
# 		ax
# 		axb
# x\056y	~	x.y
# 	!~	x.
# 		.x
# 		xxx
# 		xby  because \056 is not the metacharacter .
# 		xcy  ditto
# [\60-\62\65-6\71]	~	0
# 		1
# 		2
# 		5
# 		6
# 		9
# 	!~	3
# 		4
# 		7
# 		8
# [\60-2\65-6\71]	~	0
# 		1
# 		2
# 		5
# 		6
# 		9
# 	!~	3
# 		4
# 		7
# 		8
# [\x30-\x32\x35-6\71]	~	0
# 		1
# 		2
# 		5
# 		6
# 		9
# 	!~	3
# 		4
# 		7
# 		8
# [\x30-2\x35-6\x39]	~	0
# 		1
# 		2
# 		5
# 		6
# 		9
# 	!~	3
# 		4
# 		7
# 		8
!!!!
