xref: /dragonfly/tools/regression/bin/sh/expansion/tilde1.0 (revision 3e3895bf4584c1562faf4533cbd97026ee6a8dcf)
1# $FreeBSD: head/bin/sh/tests/expansion/tilde1.0 206149 2010-04-03 21:56:24Z jilles $
2
3HOME=/tmp
4roothome=~root
5if [ "$roothome" = "~root" ]; then
6          echo "~root is not expanded!"
7          exit 2
8fi
9
10testcase() {
11          code="$1"
12          expected="$2"
13          oIFS="$IFS"
14          eval "$code"
15          IFS='|'
16          result="$#|$*"
17          IFS="$oIFS"
18          if [ "x$result" = "x$expected" ]; then
19                    ok=x$ok
20          else
21                    failures=x$failures
22                    echo "For $code, expected $expected actual $result"
23          fi
24}
25
26testcase 'set -- ~'                               '1|/tmp'
27testcase 'set -- ~/foo'                                     '1|/tmp/foo'
28testcase 'set -- x~'                                        '1|x~'
29testcase 'set -- ~root'                                     "1|$roothome"
30h=~
31testcase 'set -- "$h"'                                      '1|/tmp'
32ooIFS=$IFS
33IFS=m
34testcase 'set -- ~'                               '1|/tmp'
35testcase 'set -- ~/foo'                                     '1|/tmp/foo'
36testcase 'set -- $h'                                        '2|/t|p'
37IFS=$ooIFS
38t=\~
39testcase 'set -- $t'                                        '1|~'
40r=$(cat <<EOF
41~
42EOF
43)
44testcase 'set -- $r'                                        '1|~'
45r=$(cat <<EOF
46${t+~}
47EOF
48)
49testcase 'set -- $r'                                        '1|~'
50r=$(cat <<EOF
51${t+~/.}
52EOF
53)
54testcase 'set -- $r'                                        '1|~/.'
55
56test "x$failures" = x
57