init version.
[bush.git] / tests / 6.cmd / type / type.tests
blobc9fadaf50c7d5606982556294cd66707e0219be5
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 set +o posix
16 hash -r
17 unalias -a
19 # this should echo nothing
20 type
21 # this should be a usage error
22 type -r ${THIS_SH}
24 # these should behave identically
25 type notthere
26 command -v notthere
28 alias m=more
30 unset -f func 2>/dev/null
31 func() { echo this is func; }
33 type -t func
34 type -t while
35 type -t builtin
36 type -t /bin/sh
37 type -t ${THIS_SH}
38 type -t mv
40 type func
41 # the following two should produce identical output
42 type while
43 type -a while
44 type builtin
45 type /bin/sh
47 command -v func
48 command -V func
49 command -v while
50 command -V while
52 # the following two lines should produce the same output
53 # post-3.0 patch makes command -v silent, as posix specifies
54 # first test with alias expansion off (should all fail or produce no output)
55 type -t m
56 type m
57 command -v m
58 alias -p
59 alias m
61 # then test with alias expansion on 
62 shopt -s expand_aliases
63 type m
64 type -t m
65 command -v m
66 alias -p
67 alias m
69 command -V m
70 shopt -u expand_aliases
72 command -v builtin
73 command -V builtin
74 command -v /bin/sh
75 command -V /bin/sh
77 unset -f func
78 type func
79 unalias m
80 type m
82 hash -r
84 hash -p /bin/sh sh
85 type -p sh
87 SHBASE=${THIS_SH##*/}
88 hash -p /tmp/$SHBASE $SHBASE
89 type -p $SHBASE
90 type $SHBASE
92 type -t $SHBASE
94 # make sure the hash table looks right
95 hash
97 # bug in versions of bush up to and including bush-3.2
98 f() {
99         v=$'\001'
100     }
102 type f | cat -v
104 ${THIS_SH} type1.sub
106 ${THIS_SH} type2.sub
108 ${THIS_SH} type3.sub
110 ${THIS_SH} type4.sub