shithub: kwa

ref: 3206ebbc2fbd2d489d12a559b5d4e68fdfdc5ffc
dir: /test/T.getline/

View raw version
#!/bin/rc
echo T.getline: test getline function >[1=2]

who >foo1
cat foo1 | $awk '
BEGIN {
	while (getline)
		print
	exit
}
' >foo
cmp -s foo1 foo || echo 'BAD: T.getline: bare getline' >[1=2]

who >foo1
cat foo1 | $awk '
BEGIN {
	while (getline xxx)
		print xxx
	exit
}
' >foo
cmp -s foo1 foo || echo 'BAD: T.getline: getline xxx' >[1=2]

sed 1000q /lib/ucd/UnicodeData.txt >foo.txt

$awk '
BEGIN {
	while (getline <"foo.txt")
		print
	exit
}
' >foo
cmp -s foo.txt foo || echo 'BAD: T.getline: getline <file' >[1=2]

cat foo.txt | $awk '
BEGIN {
	while (getline <"-")	# stdin
		print
	exit
}
' >foo
cmp -s foo.txt foo || echo 'BAD: T.getline: getline <"-"' >[1=2]

$awk '
BEGIN {
	while (getline <ARGV[1])
		print
	exit
}
' foo.txt >foo
cmp -s foo.txt foo || echo 'BAD: T.getline: getline <arg' >[1=2]

$awk '
BEGIN {
	while (getline x <ARGV[1])
		print x
	exit
}
' foo.txt >foo
cmp -s foo.txt foo || echo 'BAD: T.getline: getline x <arg' >[1=2]

$awk '
BEGIN {
	while (("cat " ARGV[1]) | getline)
		print
	exit
}
' foo.txt >foo
cmp -s foo.txt foo || echo 'BAD: T.getline: cat arg | getline' >[1=2]

$awk '
BEGIN {
	while (("cat " ARGV[1]) | getline x)
		print x
	exit
}
' foo.txt >foo
cmp -s foo.txt foo || echo 'BAD: T.getline: cat arg | getline x' >[1=2]

$awk ' BEGIN { print getline <"/glop/glop/glop" } ' >foo
echo '-1' >foo1
cmp -s foo foo1 || echo 'BAD: T.getline: non-existent file' >[1=2]

echo 'false false equal' >foo1
$awk 'BEGIN {
	"echo 0" | getline
	if ($0) printf "true " 
	else printf "false "
	if ($1) printf "true " 
	else printf "false "
	if ($0==$1) printf "equal\n"
	else printf "not equal\n"
}' >foo2
cmp -s foo1 foo2 || echo >[1=2] 'BAD: T.getline bad $0 type in cmd|getline' >[1=2]

echo 'L1
L2' | $awk 'BEGIN { $0="old stuff"; $1="new"; getline x; print}' >foo1
echo 'new stuff' >foo2
cmp -s foo1 foo2 || echo >[1=2] 'BAD: T.getline bad update $0' >[1=2]