ref: edee032b5ea8bdf6dd56b81f9ea0e2efc2750bc5
parent: 3206ebbc2fbd2d489d12a559b5d4e68fdfdc5ffc
author: qwx <qwx@sciops.net>
date: Wed Jan 7 18:41:42 EST 2026
test: further refactor
--- a/test/T.overflow
+++ b/test/T.overflow
@@ -1,5 +1,5 @@
#!/bin/rc
-echo T.overflow: test some overflow conditions
+echo T.overflow: test some overflow conditions >[1=2]
$awk 'BEGIN { for (i = 0; i < 1000; i++) printf("abcdefghijklmnopqsrtuvwxyz")@@ -7,7 +7,7 @@
exit
}' >foo1
$awk '{print}' foo1 >foo2-cmp -s foo1 foo2 || echo 'BAD: T.overflow record 1'
+cmp -s foo1 foo2 || echo 'BAD: T.overflow: record 1' >[1=2]
echo 'abcdefghijklmnopqsrtuvwxyz' >foo1
echo hello | $awk '
@@ -15,7 +15,7 @@
$0 = s
print $1
}' >foo2
-cmp -s foo1 foo2 || echo 'BAD: T.overflow abcdef'
+cmp -s foo1 foo2 || echo 'BAD: T.overflow: abcdef' >[1=2]
# default input record 3072, fields 200:
$awk '
@@ -27,7 +27,7 @@
}
} ' >foo1
$awk '{$1 = " 123456789"; print}' foo1 >foo2-cmp -s foo1 foo2 || echo 'BAD: T.overflow -mr -mf set $1'
+cmp -s foo1 foo2 || echo 'BAD: T.overflow: -mr -mf set $1' >[1=2]
$awk '
BEGIN {@@ -40,28 +40,8 @@
$awk '{print NF}' foo >foo1echo '500
500' >foo2
-cmp -s foo1 foo2 || echo 'BAD: T.overflow -mr -mf NF'
+cmp -s foo1 foo2 || echo 'BAD: T.overflow: -mr -mf NF' >[1=2]
-rm -f core
-# this should not drop core
-$awk 'BEGIN {- for (i = 1; i < 1000; i++) s = s "a-z"
- if ("x" ~ "[" s "]")- print "ugh"
-}' >foo >[2]foo
-test -r core && echo >[1=2] "BAD: T.overflow too long char class dropped core"
-
-echo 4000004 >foo1
-$awk '
-BEGIN {- x1 = sprintf("%1000000s\n", "hello")- x2 = sprintf("%-1000000s\n", "world")- x3 = sprintf("%1000000.1000000s\n", "goodbye")- x4 = sprintf("%-1000000.1000000s\n", "goodbye")- print length(x1 x2 x3 x4)
-}' >foo2
-cmp -s foo1 foo2 || echo 'BAD: T.overflow huge sprintfs'
-
echo 0 >foo1
$awk '
BEGIN {@@ -74,13 +54,4 @@
n++
print n
}' >foo2
-cmp -s foo1 foo2 || echo 'BAD: T.overflow big array'
-
-echo x >foo1
-$awk '{print $40000000000000}' <foo1 >foo2 >[2]foo-grep 'out of range field' foo >/dev/null || echo >[1=2] 'BAD: T.overflow \$400000'
-
-rm foo*
-$awk 'BEGIN { for (i=1; i <= 1000; i++) print i >("foo" i) }'-ls foo* | grep '1000' >/dev/null || echo >[1=2] 'BAD: T.overflow openfiles'
-rm foo*
+cmp -s foo1 foo2 || echo 'BAD: T.overflow: big array' >[1=2]
--- /dev/null
+++ b/test/T.overflow.broken
@@ -1,0 +1,43 @@
+#!/bin/rc
+echo T.overflow: test some overflow conditions >[1=2]
+
+$awk 'BEGIN {+ for (i = 1; i < 1000; i++) s = s "a-z"
+ if ("x" ~ "[" s "]")+ print "ugh"
+}' >foo >[2]foo2
+grep . foo2 >[1=2] && echo 'BAD: T.overflow: too long char class' >[1=2]
+
+echo 4000004 >foo1
+$awk '
+BEGIN {+ x1 = sprintf("%1000000s\n", "hello")+ x2 = sprintf("%-1000000s\n", "world")+ x3 = sprintf("%1000000.1000000s\n", "goodbye")+ x4 = sprintf("%-1000000.1000000s\n", "goodbye")+ print length(x1 x2 x3 x4)
+}' >foo2
+cmp -s foo1 foo2 || echo 'BAD: T.overflow: huge sprintfs' >[1=2]
+
+echo 0 >foo1
+$awk '
+BEGIN {+ for (i = 0; i < 100000; i++)
+ x[i] = i
+ for (i in x)
+ delete x[i]
+ n = 0
+ for (i in x)
+ n++
+ print n
+}' >foo2
+cmp -s foo1 foo2 || echo 'BAD: T.overflow: big array' >[1=2]
+
+echo x >foo1
+$awk '{print $40000000000000}' <foo1 >foo2 >[2]foo+grep 'out of range field' foo >/dev/null || echo >[1=2] 'BAD: T.overflow: \$400000' >[1=2]
+
+rm -f foo_x*
+$awk 'BEGIN { for (i=1; i <= 1000; i++) print i >("foo_x" i) }'+ls foo_x* | grep '1000' >/dev/null || echo >[1=2] 'BAD: T.overflow: openfiles' >[1=2]
+rm foo_x*
--- a/test/kwa.rc
+++ b/test/kwa.rc
@@ -22,13 +22,9 @@
check foo?.$i $i
}
-broken=(\
- t.gsub4 \
- t.ofmt \
-)
echo 't.*: general-purpose tests' >[1=2]
for(i in t.*){- if(! ~ $i $broken){+ if(! ~ $i *.broken){$oldawk -f $i test.data >foo1.$i >[2=1]
$awk -f $i test.data >foo2.$i >[2=1]
check foo?.$i $i
@@ -45,7 +41,6 @@
T.latin1 \
T.misc \
T.nextfile \
- T.overflow \
T.re \
T.sub \
T.utf \
--- a/test/t.gsub4
+++ /dev/null
@@ -1,4 +1,0 @@
-length($1) == 0 { next }-
-{gsub("[" $1 "]","(&)"); print}-{gsub("[" $1 "]","(\\&)"); print}--- /dev/null
+++ b/test/t.gsub4.broken
@@ -1,0 +1,4 @@
+length($1) == 0 { next }+
+{gsub("[" $1 "]","(&)"); print}+{gsub("[" $1 "]","(\\&)"); print}--- a/test/t.ofmt
+++ /dev/null
@@ -1,2 +1,0 @@
-BEGIN {OFMT="%.5g"}- {print $1+0}--- /dev/null
+++ b/test/t.ofmt.broken
@@ -1,0 +1,2 @@
+BEGIN {OFMT="%.5g"}+ {print $1+0}--
⑨