]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - tools/regression/bin/sh/expansion/cmdsubst6.0
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / tools / regression / bin / sh / expansion / cmdsubst6.0
1 # $FreeBSD$
2 # This tests if the cmdsubst optimization is still used if possible.
3
4 failures=''
5 ok=''
6
7 testcase() {
8         code="$1"
9
10         unset v
11         eval "pid=\$(dummy=$code echo \$(\$SH -c echo\ \\\$PPID))"
12
13         if [ "$pid" = "$$" ]; then
14                 ok=x$ok
15         else
16                 failures=x$failures
17                 echo "Failure for $code"
18         fi
19 }
20
21 unset v
22 w=1
23 testcase '$w'
24 testcase '1${w+1}'
25 testcase '1${w-1}'
26 testcase '1${v+1}'
27 testcase '1${v-1}'
28 testcase '1${w:+1}'
29 testcase '1${w:-1}'
30 testcase '1${v:+1}'
31 testcase '1${v:-1}'
32 testcase '${w?}'
33 testcase '${w:?}'
34 testcase '${w#x}'
35 testcase '${w##x}'
36 testcase '${w%x}'
37 testcase '${w%%x}'
38
39 testcase '$((w))'
40 testcase '$(((w+4)*2/3))'
41 testcase '$((w==1))'
42 testcase '$((w>=0 && w<=5 && w!=2))'
43 testcase '$((${#w}))'
44 testcase '$((${#IFS}))'
45 testcase '$((${#w}>=1))'
46 testcase '$(($$))'
47 testcase '$(($#))'
48 testcase '$(($?))'
49
50 testcase '$(: $((w=4)))'
51 testcase '$(: ${v=2})'
52
53 test "x$failures" = x