shithub: kwa

ref: 703960d83de310d26c273c79c2f9abdd645e1eda
dir: /test/T.overflow/

View raw version
#!/bin/rc
echo T.overflow: test some overflow conditions >[1=2]

$awk 'BEGIN {
 	for (i = 0; i < 1000; i++) printf("abcdefghijklmnopqsrtuvwxyz")
 	printf("\n")
 	exit
}' >foo1
$awk '{print}' foo1 >foo2
cmp -s foo1 foo2 || echo 'BAD: T.overflow: record 1' >[1=2]

echo 'abcdefghijklmnopqsrtuvwxyz' >foo1
echo hello | $awk '
 { for (i = 1; i < 500; i++) s = s "abcdefghijklmnopqsrtuvwxyz "
   $0 = s
   print $1
 }'  >foo2
cmp -s foo1 foo2 || echo 'BAD: T.overflow: abcdef' >[1=2]

# default input record 3072, fields 200:
$awk '
BEGIN {
	for (j = 0; j < 2; j++) {
		for (i = 0; i < 500; i++)
			printf(" 123456789")
		printf("\n");
	}
} ' >foo1
$awk '{$1 = " 123456789"; print}' foo1 >foo2
cmp -s foo1 foo2 || echo 'BAD: T.overflow: -mr -mf set $1' >[1=2]

$awk '
BEGIN {
	for (j = 0; j < 2; j++) {
		for (i = 0; i < 500; i++)
			printf(" 123456789")
		printf("\n");
	}
} ' >foo
$awk  '{print NF}' foo >foo1
echo '500
500' >foo2
cmp -s foo1 foo2 || echo 'BAD: T.overflow: -mr -mf NF' >[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]