1201366Sjilles# $FreeBSD: releng/11.0/bin/sh/tests/expansion/cmdsubst1.0 201366 2010-01-01 18:17:46Z jilles $
2201366Sjilles
3201366Sjillesfailures=0
4201366Sjilles
5201366Sjillescheck() {
6201366Sjilles	if ! eval "[ $* ]"; then
7201366Sjilles		echo "Failed: $*"
8201366Sjilles		: $((failures += 1))
9201366Sjilles	fi
10201366Sjilles}
11201366Sjilles
12201366Sjillescheck '"$(echo abcde)" = "abcde"'
13201366Sjillescheck '"$(echo abcde; :)" = "abcde"'
14201366Sjilles
15201366Sjillescheck '"$(printf abcde)" = "abcde"'
16201366Sjillescheck '"$(printf abcde; :)" = "abcde"'
17201366Sjilles
18201366Sjilles# regular
19201366Sjillescheck '-n "$(umask)"'
20201366Sjillescheck '-n "$(umask; :)"'
21201366Sjillescheck '-n "$(umask 2>&1)"'
22201366Sjillescheck '-n "$(umask 2>&1; :)"'
23201366Sjilles
24201366Sjilles# special
25201366Sjillescheck '-n "$(times)"'
26201366Sjillescheck '-n "$(times; :)"'
27201366Sjillescheck '-n "$(times 2>&1)"'
28201366Sjillescheck '-n "$(times 2>&1; :)"'
29201366Sjilles
30201366Sjilles# regular
31201366Sjillescheck '".$(umask -@ 2>&1)." = ".umask: Illegal option -@."'
32201366Sjillescheck '".$(umask -@ 2>&1; :)." = ".umask: Illegal option -@."'
33201366Sjillescheck '".$({ umask -@; } 2>&1)." = ".umask: Illegal option -@."'
34201366Sjilles
35201366Sjilles# special
36201366Sjillescheck '".$(shift xyz 2>&1)." = ".shift: Illegal number: xyz."'
37201366Sjillescheck '".$(shift xyz 2>&1; :)." = ".shift: Illegal number: xyz."'
38201366Sjillescheck '".$({ shift xyz; } 2>&1)." = ".shift: Illegal number: xyz."'
39201366Sjilles
40201366Sjillesv=1
41201366Sjillescheck '-z "$(v=2 :)"'
42201366Sjillescheck '"$v" = 1'
43201366Sjillescheck '-z "$(v=3)"'
44201366Sjillescheck '"$v" = 1'
45201366Sjillescheck '"$(v=4 eval echo \$v)" = 4'
46201366Sjillescheck '"$v" = 1'
47201366Sjilles
48201366Sjillesexit $((failures > 0))
49