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