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