echo T.getline: test getline function

awk=${awk-../a.out}

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

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

$awk '
BEGIN {
	while (getline <"/etc/passwd")
		print
	exit
}
' >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <file)'

cat /etc/passwd | $awk '
BEGIN {
	while (getline <"-")	# stdin
		print
	exit
}
' >foo
cmp -s /etc/passwd foo || echo 'BAD: T.getline (getline <"-")'

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

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

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

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

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

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'

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'
