sh: Add various testcases for here documents.
They are mainly about expansions in here documents but because all the testcases are in $() command substitution, we also test that $() command substitution is recursively parsed (or very close to it).
This commit is contained in:
parent
460f173dad
commit
0019284ae8
85
tools/regression/bin/sh/parser/heredoc1.0
Normal file
85
tools/regression/bin/sh/parser/heredoc1.0
Normal file
@ -0,0 +1,85 @@
|
||||
# $FreeBSD$
|
||||
|
||||
failures=0
|
||||
|
||||
check() {
|
||||
if ! eval "[ $* ]"; then
|
||||
echo "Failed: $*"
|
||||
: $((failures += 1))
|
||||
fi
|
||||
}
|
||||
|
||||
check '"$(cat <<EOF
|
||||
hi
|
||||
EOF
|
||||
)" = hi'
|
||||
|
||||
check '"$(cat <<EOF
|
||||
${$+hi}
|
||||
EOF
|
||||
)" = hi'
|
||||
|
||||
unset yy
|
||||
check '"$(cat <<EOF
|
||||
${yy-hi}
|
||||
EOF
|
||||
)" = hi'
|
||||
|
||||
check '"$(cat <<EOF
|
||||
${$+hi
|
||||
there}
|
||||
EOF
|
||||
)" = "hi
|
||||
there"'
|
||||
|
||||
check '"$(cat <<EOF
|
||||
$((1+1))
|
||||
EOF
|
||||
)" = 2'
|
||||
|
||||
check '"$(cat <<EOF
|
||||
$(echo hi)
|
||||
EOF
|
||||
)" = hi'
|
||||
|
||||
check '"$(cat <<EOF
|
||||
`echo hi`
|
||||
EOF
|
||||
)" = hi'
|
||||
|
||||
check '"$(cat <<\EOF
|
||||
${$+hi}
|
||||
EOF
|
||||
)" = "\${\$+hi}"'
|
||||
|
||||
check '"$(cat <<\EOF
|
||||
$(
|
||||
EOF
|
||||
)" = \$\('
|
||||
|
||||
check '"$(cat <<\EOF
|
||||
`
|
||||
EOF
|
||||
)" = \`'
|
||||
|
||||
check '"$(cat <<EOF
|
||||
"
|
||||
EOF
|
||||
)" = \"'
|
||||
|
||||
check '"$(cat <<\EOF
|
||||
"
|
||||
EOF
|
||||
)" = \"'
|
||||
|
||||
check '"$(cat <<esac
|
||||
'"'"'
|
||||
esac
|
||||
)" = "'"'"'"'
|
||||
|
||||
check '"$(cat <<\)
|
||||
'"'"'
|
||||
)
|
||||
)" = "'"'"'"'
|
||||
|
||||
exit $((failures != 0))
|
Loading…
x
Reference in New Issue
Block a user