|
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 |
}
|