freebsd-nq/contrib/one-true-awk/testdir/T.close
Warner Losh 23f24377b1 awk: Merge 20210729 from One True Awk upstream (0592de4a)
July 27, 2021:
	As per IEEE Std 1003.1-2008, -F "str" is now consistent with
	-v FS="str" when str is null. Thanks to Warner Losh.

July 24, 2021:
	Fix readrec's definition of a record. This fixes an issue
	with NetBSD's RS regular expression support that can cause
	an infinite read loop. Thanks to Miguel Pineiro Jr.

	Fix regular expression RS ^-anchoring. RS ^-anchoring needs to
	know if it is reading the first record of a file. This change
	restores a missing line that was overlooked when porting NetBSD's
	RS regex functionality. Thanks to Miguel Pineiro Jr.

	Fix size computation in replace_repeat() for special case
	REPEAT_WITH_Q. Thanks to Todd C. Miller.

Also, included the tests from upstream, though they aren't yet connected
to the tree.

Sponsored by:		Netflix
2021-08-01 10:22:39 -06:00

37 lines
855 B
Plaintext
Executable File

echo T.close: test close built-in
awk=${awk-../a.out}
rm -f foo
$awk '{ print >>"foo"; close("foo") }' /etc/passwd
diff /etc/passwd foo || echo 'BAD: T.close (1)'
ls -l >foo
tail -1 foo >foo1
$awk '{ print >"foo2"; close("foo2") }' foo
diff foo1 foo2 || echo 'BAD: T.close (2)'
echo 0 >foo1
$awk ' # non-accessible file
BEGIN { getline <"/etc/passwd"; print close("/etc/passwd"); }
' >foo2
diff foo1 foo2 || echo 'BAD: T.close (3)'
echo -1 >foo1
$awk ' # file not opened
BEGIN { print close("glotch"); }
' >foo2
diff foo1 foo2 || echo 'BAD: T.close (4)'
echo 0 >foo1
$awk ' # normal close
BEGIN { print "hello" > "foo"; print close("foo"); }
' >foo2
diff foo1 foo2 || echo 'BAD: T.close (5)'
echo 0 >foo1
$awk ' # normal close
BEGIN { print "hello" | "cat >foo"; print close("cat >foo"); }
' >foo2
diff foo1 foo2 || echo 'BAD: T.close (6)'