diff options
Diffstat (limited to 'usr/src/lib/libshell/common/tests/tilde.sh')
-rw-r--r-- | usr/src/lib/libshell/common/tests/tilde.sh | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/usr/src/lib/libshell/common/tests/tilde.sh b/usr/src/lib/libshell/common/tests/tilde.sh new file mode 100644 index 0000000000..6ebfd8504c --- /dev/null +++ b/usr/src/lib/libshell/common/tests/tilde.sh @@ -0,0 +1,87 @@ +######################################################################## +# # +# This software is part of the ast package # +# Copyright (c) 1982-2007 AT&T Knowledge Ventures # +# and is licensed under the # +# Common Public License, Version 1.0 # +# by AT&T Knowledge Ventures # +# # +# A copy of the License is available at # +# http://www.opensource.org/licenses/cpl1.0.txt # +# (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) # +# # +# Information and Software Systems Research # +# AT&T Research # +# Florham Park NJ # +# # +# David Korn <dgk@research.att.com> # +# # +######################################################################## +function err_exit +{ + print -u2 -n "\t" + print -u2 -r $Command: "$@" + let Errors+=1 +} +alias err_exit='err_exit $LINENO' + +function home # id +{ + typeset IFS=: pwd=/etc/passwd + set -o noglob + if [[ -f $pwd ]] && grep -c "^$1:" $pwd > /dev/null + then set -- $(grep "^$1:" $pwd) + print -r -- "$6" + else print . + fi +} + +Command=${0##*/} +integer Errors=0 +OLDPWD=/bin +if [[ ~ != $HOME ]] +then err_exit '~' not $HOME +fi +x=~ +if [[ $x != $HOME ]] +then err_exit x=~ not $HOME +fi +x=x:~ +if [[ $x != x:$HOME ]] +then err_exit x=x:~ not x:$HOME +fi +if [[ ~+ != $PWD ]] +then err_exit '~' not $PWD +fi +x=~+ +if [[ $x != $PWD ]] +then err_exit x=~+ not $PWD +fi +if [[ ~- != $OLDPWD ]] +then err_exit '~' not $PWD +fi +x=~- +if [[ $x != $OLDPWD ]] +then err_exit x=~- not $OLDPWD +fi +for u in root Administrator +do h=$(home $u) + if [[ $h != . ]] + then [[ ~$u -ef $h ]] || err_exit "~$u not $h" + x=~$u + [[ $x -ef $h ]] || "x=~$u not $h" + break + fi +done +x=~%% +if [[ $x != '~%%' ]] +then err_exit 'x='~%%' not '~%% +fi +x=~:~ +if [[ $x != "$HOME:$HOME" ]] +then err_exit x=~:~ not $HOME:$HOME +fi +HOME=/ +[[ ~ == / ]] || err_exit '~ should be /' +[[ ~/foo == /foo ]] || err_exit '~/foo should be /foo when ~==/' +exit $((Errors)) |