]> git.saurik.com Git - apple/shell_cmds.git/blame - sh/tests/expansion/cmdsubst6.0
shell_cmds-203.tar.gz
[apple/shell_cmds.git] / sh / tests / expansion / cmdsubst6.0
CommitLineData
deb63bfb 1# $FreeBSD: head/bin/sh/tests/expansion/cmdsubst6.0 216763 2010-12-28 14:58:08Z jilles $
71aad674
A
2# This tests if the cmdsubst optimization is still used if possible.
3
4failures=''
5ok=''
6
7testcase() {
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
21unset v
22w=1
23testcase '$w'
24testcase '1${w+1}'
25testcase '1${w-1}'
26testcase '1${v+1}'
27testcase '1${v-1}'
28testcase '1${w:+1}'
29testcase '1${w:-1}'
30testcase '1${v:+1}'
31testcase '1${v:-1}'
32testcase '${w?}'
33testcase '${w:?}'
34testcase '${w#x}'
35testcase '${w##x}'
36testcase '${w%x}'
37testcase '${w%%x}'
38
39testcase '$((w))'
40testcase '$(((w+4)*2/3))'
41testcase '$((w==1))'
42testcase '$((w>=0 && w<=5 && w!=2))'
43testcase '$((${#w}))'
44testcase '$((${#IFS}))'
45testcase '$((${#w}>=1))'
46testcase '$(($$))'
47testcase '$(($#))'
48testcase '$(($?))'
49
50testcase '$(: $((w=4)))'
51testcase '$(: ${v=2})'
52
53test "x$failures" = x