1*13d33726Schristosecho T.redir: test redirections
2*13d33726Schristos
3*13d33726Schristosawk=${awk-../a.out}
4*13d33726Schristos
5*13d33726Schristos$awk '{ print >"foo" }' /etc/passwd
6*13d33726Schristosdiff foo /etc/passwd || echo 'BAD: T.redir (print >"foo")'
7*13d33726Schristos
8*13d33726Schristosrm -f foo
9*13d33726Schristos$awk '{ print >>"foo" }' /etc/passwd
10*13d33726Schristosdiff foo /etc/passwd || echo 'BAD: T.redir (print >>"foo")'
11*13d33726Schristos
12*13d33726Schristosrm -f foo
13*13d33726Schristos$awk 'NR%2 == 1 { print >>"foo" }
14*13d33726Schristos      NR%2 == 0 { print >"foo" }' /etc/passwd
15*13d33726Schristosdiff foo /etc/passwd || echo 'BAD: T.redir (print > and >>"foo")'
16*13d33726Schristos
17*13d33726Schristosrm -f foo
18*13d33726Schristos$awk '{ print | "cat >foo" }' /etc/passwd
19*13d33726Schristosdiff foo /etc/passwd || echo 'BAD: T.redir (print | "cat >foo")'
20*13d33726Schristos
21*13d33726Schristos# tests flush of stdout before opening pipe
22*13d33726Schristosecho '   head
23*13d33726Schristos1
24*13d33726Schristos2' >foo1
25*13d33726Schristos$awk 'BEGIN { print "   head"
26*13d33726Schristos	for (i = 1; i < 3; i++)
27*13d33726Schristos		print i | "sort" }' >foo2
28*13d33726Schristosdiff foo1 foo2 || echo 'BAD: T.redir (buffering)'
29*13d33726Schristos
30*13d33726Schristosrm -f foo[12]
31*13d33726Schristos$awk '{ print >"/dev/stderr" }' /etc/passwd 1>foo1 2>foo2
32*13d33726Schristosdiff foo2 /etc/passwd || echo 'BAD: T.redir (print >"/dev/stderr")'
33*13d33726Schristosdiff foo1 /dev/null  || echo 'BAD: T.redir (print >"/dev/stderr")'
34*13d33726Schristos
35*13d33726Schristosrm -f foo[12]
36*13d33726Schristos$awk '{ print >"/dev/stdout" }' /etc/passwd 1>foo1 2>foo2
37*13d33726Schristosdiff foo1 /etc/passwd || echo 'BAD: T.redir (print >"/dev/stdout")'
38*13d33726Schristosdiff foo2 /dev/null  || echo 'BAD: T.redir (print >"/dev/stderr")'
39