diff options
author | jilles <jilles@FreeBSD.org> | 2014-10-19 11:59:15 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2014-10-19 11:59:15 +0000 |
commit | 4eb9d5ad9feda4e7548b017f80c8d769f155992a (patch) | |
tree | 4ecfed1ba1b516f4033a57fe24f5b3ba1da1b1e4 /bin/sh/tests | |
parent | 4c24d0f039fa0d4fd238c7656db20db39ad26b7f (diff) | |
download | FreeBSD-src-4eb9d5ad9feda4e7548b017f80c8d769f155992a.zip FreeBSD-src-4eb9d5ad9feda4e7548b017f80c8d769f155992a.tar.gz |
sh: Allow backslash-newline continuation in more places:
* directly after a $
* directly after ${
* between the characters of a multi-character operator token
* within a parameter name
Diffstat (limited to 'bin/sh/tests')
-rw-r--r-- | bin/sh/tests/parser/Makefile | 8 | ||||
-rw-r--r-- | bin/sh/tests/parser/line-cont10.0 | 18 | ||||
-rw-r--r-- | bin/sh/tests/parser/line-cont11.0 | 23 | ||||
-rw-r--r-- | bin/sh/tests/parser/line-cont4.0 | 8 | ||||
-rw-r--r-- | bin/sh/tests/parser/line-cont5.0 | 14 | ||||
-rw-r--r-- | bin/sh/tests/parser/line-cont6.0 | 23 | ||||
-rw-r--r-- | bin/sh/tests/parser/line-cont7.0 | 7 | ||||
-rw-r--r-- | bin/sh/tests/parser/line-cont8.0 | 6 | ||||
-rw-r--r-- | bin/sh/tests/parser/line-cont9.0 | 6 |
9 files changed, 113 insertions, 0 deletions
diff --git a/bin/sh/tests/parser/Makefile b/bin/sh/tests/parser/Makefile index ef528f8..3c9e62c 100644 --- a/bin/sh/tests/parser/Makefile +++ b/bin/sh/tests/parser/Makefile @@ -58,6 +58,14 @@ FILES+= heredoc12.0 FILES+= line-cont1.0 FILES+= line-cont2.0 FILES+= line-cont3.0 +FILES+= line-cont4.0 +FILES+= line-cont5.0 +FILES+= line-cont6.0 +FILES+= line-cont7.0 +FILES+= line-cont8.0 +FILES+= line-cont9.0 +FILES+= line-cont10.0 +FILES+= line-cont11.0 FILES+= no-space1.0 FILES+= no-space2.0 FILES+= only-redir1.0 diff --git a/bin/sh/tests/parser/line-cont10.0 b/bin/sh/tests/parser/line-cont10.0 new file mode 100644 index 0000000..1e74108 --- /dev/null +++ b/bin/sh/tests/parser/line-cont10.0 @@ -0,0 +1,18 @@ +# $FreeBSD$ + +v=XaaaXbbbX +[ "${v\ +#\ +*\ +a}.${v\ +#\ +#\ +*\ +a}.${v\ +%\ +b\ +*}.${v\ +%\ +%\ +b\ +*}" = aaXbbbX.XbbbX.XaaaXbb.XaaaX ] diff --git a/bin/sh/tests/parser/line-cont11.0 b/bin/sh/tests/parser/line-cont11.0 new file mode 100644 index 0000000..22e4975 --- /dev/null +++ b/bin/sh/tests/parser/line-cont11.0 @@ -0,0 +1,23 @@ +# $FreeBSD$ + +T=$(mktemp "${TMPDIR:-/tmp}/sh-test.XXXXXXXX") || exit +trap 'rm -f -- "$T"' 0 +w='#A' +# A naive pgetc_linecont() would push back two characters here, which +# fails if a new buffer is read between the two characters. +c='${w#\#}' +c=$c$c$c$c +c=$c$c$c$c +c=$c$c$c$c +c=$c$c$c$c +c=$c$c$c$c +c=$c$c$c$c +printf 'v=%s\n' "$c" >"$T" +. "$T" +if [ "${#v}" != 4096 ]; then + echo "Length is bad (${#v})" + exit 3 +fi +case $v in +*[!A]*) echo "Content is bad"; exit 3 ;; +esac diff --git a/bin/sh/tests/parser/line-cont4.0 b/bin/sh/tests/parser/line-cont4.0 new file mode 100644 index 0000000..5803276 --- /dev/null +++ b/bin/sh/tests/parser/line-cont4.0 @@ -0,0 +1,8 @@ +# $FreeBSD$ + +v=abcd +[ "$\ +v.$\ +{v}.${\ +v}.${v\ +}" = abcd.abcd.abcd.abcd ] diff --git a/bin/sh/tests/parser/line-cont5.0 b/bin/sh/tests/parser/line-cont5.0 new file mode 100644 index 0000000..a7aa026 --- /dev/null +++ b/bin/sh/tests/parser/line-cont5.0 @@ -0,0 +1,14 @@ +# $FreeBSD$ + +bad=1 +case x in +x\ +) ;\ +; *) exit 7 +esac &\ +& bad= &\ +& : >\ +>/dev/null + +false |\ +| [ -z "$bad" ] diff --git a/bin/sh/tests/parser/line-cont6.0 b/bin/sh/tests/parser/line-cont6.0 new file mode 100644 index 0000000..b12125b --- /dev/null +++ b/bin/sh/tests/parser/line-cont6.0 @@ -0,0 +1,23 @@ +# $FreeBSD$ + +v0\ +=abc + +v=$(cat <\ +<\ +E\ +O\ +F +${v0}d +EOF +) + +w=$(cat <\ +<\ +-\ +EOF + efgh +EOF +) + +[ "$v.$w" = "abcd.efgh" ] diff --git a/bin/sh/tests/parser/line-cont7.0 b/bin/sh/tests/parser/line-cont7.0 new file mode 100644 index 0000000..27f8aec --- /dev/null +++ b/bin/sh/tests/parser/line-cont7.0 @@ -0,0 +1,7 @@ +# $FreeBSD$ + +[ "$(\ +( +1\ ++ 1)\ +)" = 2 ] diff --git a/bin/sh/tests/parser/line-cont8.0 b/bin/sh/tests/parser/line-cont8.0 new file mode 100644 index 0000000..88667760 --- /dev/null +++ b/bin/sh/tests/parser/line-cont8.0 @@ -0,0 +1,6 @@ +# $FreeBSD$ + +set -- a b c d e f g h i j +[ "${1\ +0\ +}" = j ] diff --git a/bin/sh/tests/parser/line-cont9.0 b/bin/sh/tests/parser/line-cont9.0 new file mode 100644 index 0000000..4e73c8f --- /dev/null +++ b/bin/sh/tests/parser/line-cont9.0 @@ -0,0 +1,6 @@ +# $FreeBSD$ + +[ "${$\ +:\ ++\ +xyz}" = xyz ] |