Blame test/rwarray.awk

Packit 575503
@load "rwarray"
Packit 575503
Packit 575503
BEGIN {
Packit 575503
	while ((getline word) > 0)
Packit 575503
		dict[word] = word word
Packit 575503
Packit 575503
	re_sub = "/typed-regex/"
Packit 575503
	dict[re_sub] = @/search me/
Packit 575503
Packit 575503
	strnum_sub = "strnum-sub"
Packit 575503
	split("-2.4", f)
Packit 575503
	dict[strnum_sub] = f[1]
Packit 575503
Packit 575503
	n = asorti(dict, dictindices)
Packit 575503
	for (i = 1; i <= n; i++)
Packit 575503
		printf("dict[%s] = %s\n", dictindices[i], dict[dictindices[i]]) > "orig.out"
Packit 575503
	close("orig.out");
Packit 575503
Packit 575503
	ret = writea("orig.bin", dict)
Packit 575503
	printf "writea() returned %d, expecting 1\n", ret
Packit 575503
Packit 575503
	ret = reada("orig.bin", dict)
Packit 575503
	printf "reada() returned %d, expecting 1\n", ret
Packit 575503
Packit 575503
	n = asorti(dict, dictindices)
Packit 575503
	for (i = 1; i <= n; i++)
Packit 575503
		printf("dict[%s] = %s\n", dictindices[i], dict[dictindices[i]]) > "new.out"
Packit 575503
	close("new.out");
Packit 575503
Packit 575503
	os = ""
Packit 575503
	if (ENVIRON["AWKLIBPATH"] == "sys$disk:[-]") {
Packit 575503
		os = "VMS"
Packit 575503
		# return status from system() on VMS can not be used here
Packit 575503
	}
Packit 575503
	if (os != "VMS") {
Packit 575503
		ret = system("cmp orig.out new.out")
Packit 575503
Packit 575503
		if (ret == 0)
Packit 575503
			print "old and new are equal - GOOD"
Packit 575503
		else
Packit 575503
			print "old and new are not equal - BAD"
Packit 575503
Packit 575503
		if (ret == 0 && !("KEEPIT" in ENVIRON))
Packit 575503
			system("rm -f orig.bin orig.out new.out")
Packit 575503
	}
Packit 575503
Packit 575503
	if (typeof(dict[re_sub]) != "regexp")
Packit 575503
		printf("dict[\"%s\"] should be regexp, is %s\n",
Packit 575503
			re_sub, typeof(dict[re_sub]));
Packit 575503
Packit 575503
	if (typeof(dict[strnum_sub]) != "strnum")
Packit 575503
		printf("dict[\"%s\"] should be strnum, is %s\n",
Packit 575503
			strnum_sub, typeof(dict[strnum_sub]));
Packit 575503
}