diff options
| author | Jilles Tjoelker <jilles@FreeBSD.org> | 2014-10-19 11:59:15 +0000 |
|---|---|---|
| committer | Jilles Tjoelker <jilles@FreeBSD.org> | 2014-10-19 11:59:15 +0000 |
| commit | 0b4b9c8158380102a55ef992be20cf3a239fa66a (patch) | |
| tree | 4ecfed1ba1b516f4033a57fe24f5b3ba1da1b1e4 /bin/sh/tests/parser | |
| parent | 4040f4ecd66f52c921f6308372d14cb51ed7a10b (diff) | |
Notes
Diffstat (limited to 'bin/sh/tests/parser')
| -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 ef528f871bff0..3c9e62c7a7772 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 0000000000000..1e74108757a00 --- /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 0000000000000..22e49758dbc6d --- /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 0000000000000..5803276f2b3b8 --- /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 0000000000000..a7aa02688310a --- /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 0000000000000..b12125b929e56 --- /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 0000000000000..27f8aec9515c7 --- /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 0000000000000..88667760b47bc --- /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 0000000000000..4e73c8f04abc7 --- /dev/null +++ b/bin/sh/tests/parser/line-cont9.0 @@ -0,0 +1,6 @@ +# $FreeBSD$ + +[ "${$\ +:\ ++\ +xyz}" = xyz ] |
