aboutsummaryrefslogtreecommitdiff
path: root/tests/test/script/runner/redirect.test
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2016-10-27 18:08:12 +0300
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 09:26:36 +0200
commitb3e6cb1b899dcc6b3488f10d8eee437a6f87ad15 (patch)
treeecc0a77c4fe0c823b4a4960c626ba4835c46e20d /tests/test/script/runner/redirect.test
parent94f807424dbf1ed7c33ba7826f1b19b49c413b63 (diff)
Add support of merge redirect to testscript runner
Diffstat (limited to 'tests/test/script/runner/redirect.test')
-rw-r--r--tests/test/script/runner/redirect.test134
1 files changed, 134 insertions, 0 deletions
diff --git a/tests/test/script/runner/redirect.test b/tests/test/script/runner/redirect.test
new file mode 100644
index 0000000..a49cd3c
--- /dev/null
+++ b/tests/test/script/runner/redirect.test
@@ -0,0 +1,134 @@
+# file : tests/test/script/runner/redirect.test
+# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+$* -o foo >- # out-null
+$* -e foo 2>- # err-null
+$* -i 0 <foo # in-str
+$* -o foo >foo # out-str
+$* -e foo 2>foo # err-str
+$* -i 1 <foo >foo # inout-str
+$* -i 2 <foo 2>foo # inerr-str
+$* -i 1 -e bar <foo 1>foo 2>bar # inout-err-str
+
+$* -i 0 <<EOO # in-doc
+foo
+bar
+EOO
+
+$* -o foo -o bar >>EOO # out-doc
+foo
+bar
+EOO
+
+$* -e foo -e bar 2>>EOO # err-doc
+foo
+bar
+EOO
+
+$* -i 1 <<EOI >>EOO # inout-doc
+foo
+bar
+EOI
+foo
+bar
+EOO
+
+$* -i 2 <<EOI 2>>EOE # inerr-doc
+foo
+bar
+EOI
+foo
+bar
+EOE
+
+$* -i 1 -e bar -e baz -s 2 <<EOI 1>>EOO 2>>EOE == 2 # inout-err-doc-status
+foo
+bar
+EOI
+foo
+bar
+EOO
+bar
+baz
+EOE
+
+$* -i 1 -e "" <<EOI >>EOO 2>"" # empty-str-doc
+EOI
+EOO
+
+$* -i 1 <<EOI >>EOO # nl-containing-doc
+
+EOI
+
+EOO
+
+# No-newline tests.
+#
+# @@ TMP Need does not compare test.
+#
+$* -i 1 <:"foo" >:"foo" # no-newline-str
+#\
+$* -i 1 <:"foo" >!"foo" # no-newline-str-fail1
+$* -i 1 <"foo" >:!"foo" # no-newline-str-fail2
+#\
+
+$* -i 1 <<:EOI >>:EOO # no-newline-doc
+foo
+EOI
+foo
+EOO
+
+#\
+$* -i 1 <<:EOI >>!EOO # no-newline-doc-fail1
+foo
+EOI
+foo
+EOO
+
+$* -i 1 <<EOI >>:!EOO # no-newline-doc-fail2
+foo
+EOI
+foo
+EOO
+#\
+
+$* -i 1 <<:EOI >>:EOO 2>:"" # no-newline-empty-str-doc
+EOI
+EOO
+
+$* -i 1 <<:EOI >>:EOO # no-newline-nl-cont-doc
+
+EOI
+
+EOO
+
+$* -o foo >>>out; # file
+$* -e bar 2>>>&out;
+$* -i 1 <<<out >>EOO
+foo
+bar
+EOO
+
+$* -o foo -e bar 2>>EOE 1>&2 # merge-str
+foo
+bar
+EOE
+
+$* -i 1 <<EOI -e baz >>EOO 2>&1 # merge-doc
+foo
+bar
+EOI
+foo
+bar
+baz
+EOO
+
+$* -o foo -e bar 2>&1 >>>out; # merge-file
+$* -e baz -o biz 1>&2 2>>>&out;
+$* -i 1 <<<out >>EOO
+foo
+bar
+baz
+biz
+EOO