49 lines
1.0 KiB
Plaintext
49 lines
1.0 KiB
Plaintext
|
# $FreeBSD$
|
||
|
|
||
|
failures=0
|
||
|
|
||
|
check() {
|
||
|
if ! eval "[ $* ]"; then
|
||
|
echo "Failed: $*"
|
||
|
: $((failures += 1))
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
check '"$(echo abcde)" = "abcde"'
|
||
|
check '"$(echo abcde; :)" = "abcde"'
|
||
|
|
||
|
check '"$(printf abcde)" = "abcde"'
|
||
|
check '"$(printf abcde; :)" = "abcde"'
|
||
|
|
||
|
# regular
|
||
|
check '-n "$(umask)"'
|
||
|
check '-n "$(umask; :)"'
|
||
|
check '-n "$(umask 2>&1)"'
|
||
|
check '-n "$(umask 2>&1; :)"'
|
||
|
|
||
|
# special
|
||
|
check '-n "$(times)"'
|
||
|
check '-n "$(times; :)"'
|
||
|
check '-n "$(times 2>&1)"'
|
||
|
check '-n "$(times 2>&1; :)"'
|
||
|
|
||
|
# regular
|
||
|
check '".$(umask -@ 2>&1)." = ".umask: Illegal option -@."'
|
||
|
check '".$(umask -@ 2>&1; :)." = ".umask: Illegal option -@."'
|
||
|
check '".$({ umask -@; } 2>&1)." = ".umask: Illegal option -@."'
|
||
|
|
||
|
# special
|
||
|
check '".$(shift xyz 2>&1)." = ".shift: Illegal number: xyz."'
|
||
|
check '".$(shift xyz 2>&1; :)." = ".shift: Illegal number: xyz."'
|
||
|
check '".$({ shift xyz; } 2>&1)." = ".shift: Illegal number: xyz."'
|
||
|
|
||
|
v=1
|
||
|
check '-z "$(v=2 :)"'
|
||
|
check '"$v" = 1'
|
||
|
check '-z "$(v=3)"'
|
||
|
check '"$v" = 1'
|
||
|
check '"$(v=4 eval echo \$v)" = 4'
|
||
|
check '"$v" = 1'
|
||
|
|
||
|
exit $((failures > 0))
|