From: Junio C Hamano Date: Fri, 25 Apr 2008 18:03:43 GMT Subject: Re: [PATCH 01/11] Add tests for git cat-file Message-ID: <7vve25q0ao.fsf@gitster.siamese.dyndns.org> In-Reply-To: <1208978273-98146-2-git-send-email-aroben@apple.com> Adam Roben writes: > Signed-off-by: Adam Roben > --- > t/t1006-cat-file.sh | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 files changed, 101 insertions(+), 0 deletions(-) > create mode 100755 t/t1006-cat-file.sh > > diff --git a/t/t1006-cat-file.sh b/t/t1006-cat-file.sh > new file mode 100755 > index 0000000..15741d9 > --- /dev/null > +++ b/t/t1006-cat-file.sh > @@ -0,0 +1,101 @@ > +#!/bin/sh > + > +test_description='git cat-file' > + > +. ./test-lib.sh > + > +function echo_without_newline() > +{ > + echo "$@\c" > +} "function " noiseword is unnecessary and unportable. echo "\c" is unportable. Traditional trick to do this is to pipe it to tr to strip "\010". When you see "$@" in shell scripts, you usually do not mean it, but instead mean "$*". It does not make difference if you always feed a single parameter, but it is a good habit to get into. > +function maybe_remove_timestamp() > +{ > + if test -z "$2"; then > + echo_without_newline "$1" > + else > + echo_without_newline "$1" | sed -e 's/ [0-9]\{10\} [+-][0-9]\{4\}$//' We tend to avoid \{num\| for portability. Do you really need them here? > +function run_tests() > +{ > + type=$1 > + sha1=$2 > + size=$3 > + content=$4 > + pretty_content=$5 > + no_timestamp=$6 > + > + test_expect_success \ > + "$type exists" \ > + "git cat-file -e $sha1" > + test_expect_success \ > + "Type of $type is correct" \ > + "test $type = \"\$(git cat-file -t $sha1)\"" It is quite hard to read with backslashes inside dq. Please use single quote pairs without excess backslashes when possible.