# @@ Add tests for redirects other than file and merge. # @@ Does it make sense to split into separate files - one per redirect type? # $* <>EOO # file cmd 0<<>>b 2>>>&c EOI cmd <<>>b 2>>>&c EOO $* <>EOO # quote-file cmd 0<<<"a f" 1>>>"b f" 2>>>&"c f" EOI cmd <<<'a f' >>>'b f' 2>>>&'c f' EOO $* <>EOE !=0 # in-file-fail1 cmd <<< EOI testscript:1:8: error: missing stdin file EOE $* <>EOE !=0 # in-file-fail2 cmd <<<"" EOI testscript:1:8: error: empty stdin redirect path EOE $* <>EOE !=0 # out-file-fail1 cmd >>> EOI testscript:1:8: error: missing stdout file EOE $* <>EOE !=0 # out-file-fail2 cmd >>>"" EOI testscript:1:8: error: empty stdout redirect path EOE $* <>EOE !=0 # err-file-fail1 cmd 2>>> EOI testscript:1:9: error: missing stderr file EOE $* <>EOE !=0 # err-file-fail2 cmd 2>>>"" EOI testscript:1:9: error: empty stderr redirect path EOE $* <>EOO # out-merge1 cmd 1>&2 EOI cmd >&2 EOO $* <>EOO # out-merge2 cmd 1>&2 2>&1 2>a EOI cmd >&2 2>a EOO $* <>EOE != 0 # out-merge-fail1 cmd 1>&a EOI testscript:1:8: error: stdout merge redirect file descriptor must be 2 EOE $* <>EOE != 0 # out-merge-fail2 cmd 1>&1 EOI testscript:1:8: error: stdout merge redirect file descriptor must be 2 EOE $* <>EOE != 0 # out-merge-fail3 cmd 1>& EOI testscript:1:8: error: missing stdout file descriptor EOE $* <>EOO # err-merge1 cmd 2>&1 EOI cmd 2>&1 EOO $* <>EOO # err-merge2 cmd 1>&2 2>&1 >a EOI cmd >a 2>&1 EOO $* <>EOE != 0 # err-merge-fail1 cmd 2>&2 EOI testscript:1:8: error: stderr merge redirect file descriptor must be 1 EOE $* <>EOE != 0 # err-merge-fail2 cmd 2>&2 EOI testscript:1:8: error: stderr merge redirect file descriptor must be 1 EOE $* <>EOE != 0 # err-merge-fail3 cmd 2>& EOI testscript:1:8: error: missing stderr file descriptor EOE $* <>EOE != 0 # merge-fail1 cmd 1>&2 2>&1 EOI testscript:1:14: error: stdout and stderr redirected to each other EOE