0019284ae8
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).
86 lines
744 B
Plaintext
86 lines
744 B
Plaintext
# $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))
|