Fix 5501 test
authorJunio C Hamano <junkio@twinsun.com>
Tue, 6 Dec 2005 02:13:31 +0000 (18:13 -0800)
committerJunio C Hamano <junkio@cox.net>
Tue, 6 Dec 2005 03:12:26 +0000 (19:12 -0800)
Not everybody can rely on /bin/sh to be sane, and we support
SHELL_PATH for that.  Use it.

mktemp(1) is not used anywhere else in the core git.  Do not
introduce dependency on it.

Not everybody's "which" gives a sane return value.  For example,
on Solaris 'which XXX' says "no XXX in /usr/bin /bin ..." and
exits with zero status.  The lesson here is to never use 'which'
in your scripts.

Signed-off-by: Junio C Hamano <junkio@twinsun.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
t/t5501-old-fetch-and-upload.sh

index ada5130..596c88b 100755 (executable)
@@ -7,8 +7,9 @@
 # an old counterpart
 
 cd $(dirname $0) || exit 1
+: ${SHELL_PATH=/bin/sh}
 
-tmp=$(mktemp /tmp/tmp-XXXXXXXX)
+tmp=`pwd`/.tmp$$
 
 retval=0
 
@@ -25,13 +26,17 @@ for i in $list; do
        both) pgm="old-git-upload-pack"; replace="old-git-fetch-pack --exec=$pgm";;
        esac
 
-       if which $pgm 2>/dev/null; then
+       if where=`LANG=C LC_ALL=C which "$pgm" 2>/dev/null` &&
+          case "$where" in
+          "no "*) (exit 1) ;;
+          esac
+       then
                echo "Testing with $pgm"
                sed -e "s/git-fetch-pack/$replace/g" \
                        -e "s/# old fails/warn/" < t5500-fetch-pack.sh > $tmp
 
-               sh $tmp || retval=$?
-               rm $tmp
+               "$SHELL_PATH" "$tmp" || retval=$?
+               rm -f "$tmp"
 
                test $retval != 0 && exit $retval
        else