mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-28 15:32:45 +00:00
Add some tests for ${var?} and set -u.
This commit is contained in:
parent
59085a35e8
commit
941538c0f4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=198453
22
tools/regression/bin/sh/expansion/question1.0
Normal file
22
tools/regression/bin/sh/expansion/question1.0
Normal file
@ -0,0 +1,22 @@
|
||||
# $FreeBSD$
|
||||
|
||||
x=a\ b
|
||||
[ "$x" = "${x?}" ] || exit 1
|
||||
set -- ${x?}
|
||||
{ [ "$#" = 2 ] && [ "$1" = a ] && [ "$2" = b ]; } || exit 1
|
||||
unset x
|
||||
(echo ${x?abcdefg}) 2>&1 | grep -q abcdefg || exit 1
|
||||
sh -c 'unset foo; echo ${foo?}' 2>/dev/null && exit 1
|
||||
sh -c 'foo=; echo ${foo:?}' 2>/dev/null && exit 1
|
||||
sh -c 'foo=; echo ${foo?}' >/dev/null || exit 1
|
||||
sh -c 'foo=1; echo ${foo:?}' >/dev/null || exit 1
|
||||
sh -c 'echo ${!?}' 2>/dev/null && exit 1
|
||||
sh -c ':& echo ${!?}' >/dev/null || exit 1
|
||||
sh -c 'echo ${#?}' >/dev/null || exit 1
|
||||
sh -c 'echo ${*?}' 2>/dev/null && exit 1
|
||||
sh -c 'echo ${*?}' sh x >/dev/null || exit 1
|
||||
sh -c 'echo ${1?}' 2>/dev/null && exit 1
|
||||
sh -c 'echo ${1?}' sh x >/dev/null || exit 1
|
||||
sh -c 'echo ${2?}' sh x 2>/dev/null && exit 1
|
||||
sh -c 'echo ${2?}' sh x y >/dev/null || exit 1
|
||||
exit 0
|
29
tools/regression/bin/sh/expansion/set-u1.0
Normal file
29
tools/regression/bin/sh/expansion/set-u1.0
Normal file
@ -0,0 +1,29 @@
|
||||
# $FreeBSD$
|
||||
|
||||
sh -uc 'unset foo; echo $foo' 2>/dev/null && exit 1
|
||||
sh -uc 'foo=; echo $foo' >/dev/null || exit 1
|
||||
sh -uc 'foo=1; echo $foo' >/dev/null || exit 1
|
||||
# -/+/= are unaffected by set -u
|
||||
sh -uc 'unset foo; echo ${foo-}' >/dev/null || exit 1
|
||||
sh -uc 'unset foo; echo ${foo+}' >/dev/null || exit 1
|
||||
sh -uc 'unset foo; echo ${foo=}' >/dev/null || exit 1
|
||||
# length/trimming are affected
|
||||
sh -uc 'unset foo; echo ${#foo}' 2>/dev/null && exit 1
|
||||
sh -uc 'foo=; echo ${#foo}' >/dev/null || exit 1
|
||||
sh -uc 'unset foo; echo ${foo#?}' 2>/dev/null && exit 1
|
||||
sh -uc 'foo=1; echo ${foo#?}' >/dev/null || exit 1
|
||||
sh -uc 'unset foo; echo ${foo##?}' 2>/dev/null && exit 1
|
||||
sh -uc 'foo=1; echo ${foo##?}' >/dev/null || exit 1
|
||||
sh -uc 'unset foo; echo ${foo%?}' 2>/dev/null && exit 1
|
||||
sh -uc 'foo=1; echo ${foo%?}' >/dev/null || exit 1
|
||||
sh -uc 'unset foo; echo ${foo%%?}' 2>/dev/null && exit 1
|
||||
sh -uc 'foo=1; echo ${foo%%?}' >/dev/null || exit 1
|
||||
|
||||
sh -uc 'echo $!' 2>/dev/null && exit 1
|
||||
sh -uc ':& echo $!' >/dev/null || exit 1
|
||||
sh -uc 'echo $#' >/dev/null || exit 1
|
||||
sh -uc 'echo $1' 2>/dev/null && exit 1
|
||||
sh -uc 'echo $1' sh x >/dev/null || exit 1
|
||||
sh -uc 'echo $2' sh x 2>/dev/null && exit 1
|
||||
sh -uc 'echo $2' sh x y >/dev/null || exit 1
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user