From: Junio C Hamano Date: Tue, 6 Dec 2005 02:13:31 +0000 (-0800) Subject: Fix 5501 test X-Git-Tag: v0.99.9m^2~63 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=8d69195124c826756c025fc84d993d92ff119075;p=git.git Fix 5501 test 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 Signed-off-by: Junio C Hamano --- diff --git a/t/t5501-old-fetch-and-upload.sh b/t/t5501-old-fetch-and-upload.sh index ada51303..596c88b1 100755 --- a/t/t5501-old-fetch-and-upload.sh +++ b/t/t5501-old-fetch-and-upload.sh @@ -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