aboutsummaryrefslogtreecommitdiff
path: root/unit-tests/test/script/parser/here-document.test
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-11-25 11:19:40 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-25 11:19:40 +0200
commita3dad2118fb3925ef4f9baa90cea0dfd44ca93c6 (patch)
tree54748b5d85cab7bfb70a7baf66fe902c82cf3d66 /unit-tests/test/script/parser/here-document.test
parent28f8338ded34f160e0083da9be4679bc778be7ca (diff)
Allow here-document end marker to be wholly quoted
Diffstat (limited to 'unit-tests/test/script/parser/here-document.test')
-rw-r--r--unit-tests/test/script/parser/here-document.test87
1 files changed, 82 insertions, 5 deletions
diff --git a/unit-tests/test/script/parser/here-document.test b/unit-tests/test/script/parser/here-document.test
index 4fa62d2..6f26166 100644
--- a/unit-tests/test/script/parser/here-document.test
+++ b/unit-tests/test/script/parser/here-document.test
@@ -1,3 +1,78 @@
+: end-marker
+:
+{
+ : missing-newline
+ :
+ $* <'cmd <<' 2>>EOE != 0
+ testscript:1:7: error: expected here-document end marker
+ EOE
+
+ : missing-exit
+ :
+ $* <'cmd << != 0' 2>>EOE != 0
+ testscript:1:8: error: expected here-document end marker
+ EOE
+
+ : unseparated-expansion
+ :
+ $* <'cmd <<FOO$foo' 2>>EOE != 0
+ testscript:1:10: error: here-document end marker must be literal
+ EOE
+
+ : quoted-single-partial
+ :
+ $* <"cmd <<F'O'O" 2>>EOE != 0
+ testscript:1:7: error: partially-quoted here-document end marker
+ EOE
+
+ : quoted-double-partial
+ :
+ $* <'cmd <<"FO"O' 2>>EOE != 0
+ testscript:1:7: error: partially-quoted here-document end marker
+ EOE
+
+ : quoted-mixed
+ :
+ $* <"cmd <<\"FO\"'O'" 2>>EOE != 0
+ testscript:1:7: error: partially-quoted here-document end marker
+ EOE
+
+ : unseparated
+ :
+ $* <<EOI >>EOO
+ cmd <<EOF!=0
+ foo
+ EOF
+ EOI
+ cmd <<EOF != 0
+ foo
+ EOF
+ EOO
+
+ : quoted-single
+ :
+ $* <<EOI >>EOO
+ cmd <<'EOF'
+ foo
+ EOF
+ EOI
+ cmd <<EOF
+ foo
+ EOF
+ EOO
+
+ : quoted-double
+ :
+ $* <<EOI >>EOO
+ cmd <<"EOF"
+ foo
+ EOF
+ EOI
+ cmd <<EOF
+ foo
+ EOF
+ EOO
+}
: indent
:
@@ -87,7 +162,9 @@
EOE
}
-$* <<EOI >>EOO # blank-lines
+: blank
+:
+$* <<EOI >>EOO
cmd <<EOF
foo
@@ -103,10 +180,10 @@ bar
EOF
EOO
-# quote
-#
-# Note: they are still recognized in eval contexts.
-#
+: quote
+:
+: Note: they are still recognized in eval contexts.
+:
$* <<EOI >>EOO
cmd <<EOF
'single'