From c55240fb05151cae046c75a793c164d72c988db2 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 6 Jan 2017 18:46:58 +0300 Subject: Tests cleanup (take 2) --- unit-tests/test/script/parser/redirect.test | 294 +++++++++++++++++----------- 1 file changed, 181 insertions(+), 113 deletions(-) (limited to 'unit-tests/test/script/parser/redirect.test') diff --git a/unit-tests/test/script/parser/redirect.test b/unit-tests/test/script/parser/redirect.test index 2642834..5a91354 100644 --- a/unit-tests/test/script/parser/redirect.test +++ b/unit-tests/test/script/parser/redirect.test @@ -1,117 +1,185 @@ +# file : unit-tests/test/script/parser/redirect.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + # @@ 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 +: file +: +{ + : not-quote + : + $* <>EOO + cmd 0<<>>b 2>>>&c + EOI + cmd <<>>b 2>>>&c + EOO + + : quote + : + $* <>EOO + cmd 0<<<"a f" 1>>>"b f" 2>>>&"c f" + EOI + cmd <<<'a f' >>>'b f' 2>>>&'c f' + EOO + + : in + : + { + : missed + : + $* <>EOE !=0 + cmd <<< + EOI + testscript:1:8: error: missing stdin file + EOE + + : empty + : + $* <>EOE !=0 + cmd <<<"" + EOI + testscript:1:8: error: empty stdin redirect path + EOE + } + + : out + : + { + : missed + : + $* <>EOE !=0 + cmd >>> + EOI + testscript:1:8: error: missing stdout file + EOE + + : empty + : + $* <>EOE !=0 + cmd >>>"" + EOI + testscript:1:8: error: empty stdout redirect path + EOE + } + + : err + : + { + : missed + : + $* <>EOE !=0 + cmd 2>>> + EOI + testscript:1:9: error: missing stderr file + EOE + + : empty + : + $* <>EOE !=0 + cmd 2>>>"" + EOI + testscript:1:9: error: empty stderr redirect path + EOE + } +} + +: merge +{ + : out + : + { + : err + : + $* <>EOO + cmd 1>&2 + EOI + cmd >&2 + EOO + + : no-mutual + : + $* <>EOO + cmd 1>&2 2>&1 2>a + EOI + cmd >&2 2>a + EOO + + : not-descriptor + : + $* <>EOE != 0 + cmd 1>&a + EOI + testscript:1:8: error: stdout merge redirect file descriptor must be 2 + EOE + + : self + : + $* <>EOE != 0 + cmd 1>&1 + EOI + testscript:1:8: error: stdout merge redirect file descriptor must be 2 + EOE + + : missed + : + $* <>EOE != 0 + cmd 1>& + EOI + testscript:1:8: error: missing stdout file descriptor + EOE + } + + : err + { + : out + : + $* <>EOO + cmd 2>&1 + EOI + cmd 2>&1 + EOO + + : no-mutual + : + $* <>EOO + cmd 1>&2 2>&1 >a + EOI + cmd >a 2>&1 + EOO + + : not-descriptor + : + $* <>EOE != 0 + cmd 2>&a + EOI + testscript:1:8: error: stderr merge redirect file descriptor must be 1 + EOE + + : self + : + $* <>EOE != 0 + cmd 2>&2 + EOI + testscript:1:8: error: stderr merge redirect file descriptor must be 1 + EOE + + : missed + : + $* <>EOE != 0 + cmd 2>& + EOI + testscript:1:8: error: missing stderr file descriptor + EOE + } + + : mutual + : + $* <>EOE != 0 + cmd 1>&2 2>&1 + EOI + testscript:1:14: error: stdout and stderr redirected to each other + EOE +} -- cgit v1.1