t0002: simplify error checking

This ancient test script does a lot of manual checking of
test conditions with "if" blocks. We can simplify this
by relying on helpers like test_must_fail.

Note that a failing "grep" call here won't produce any
verbose output, but that's OK. These days we rely on "-x" to
tell us about such commands. And in addition, these greps
are soon to be converted to test_i18ngrep (which is itself
soon learning to be more verbose).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 2018-02-10 06:31:29 -05:00 committed by Junio C Hamano
parent 5be1f00a9a
commit dedfdb9c60
1 changed files with 10 additions and 43 deletions

View File

@ -10,15 +10,6 @@ objpath() {
echo "$1" | sed -e 's|\(..\)|\1/|'
}

objck() {
p=$(objpath "$1")
if test ! -f "$REAL/objects/$p"
then
echo "Object not found: $REAL/objects/$p"
false
fi
}

test_expect_success 'initial setup' '
REAL="$(pwd)/.real" &&
mv .git "$REAL"
@ -26,30 +17,14 @@ test_expect_success 'initial setup' '

test_expect_success 'bad setup: invalid .git file format' '
echo "gitdir $REAL" >.git &&
if git rev-parse 2>.err
then
echo "git rev-parse accepted an invalid .git file"
false
fi &&
if ! grep "Invalid gitfile format" .err
then
echo "git rev-parse returned wrong error"
false
fi
test_must_fail git rev-parse 2>.err &&
grep "Invalid gitfile format" .err
'

test_expect_success 'bad setup: invalid .git file path' '
echo "gitdir: $REAL.not" >.git &&
if git rev-parse 2>.err
then
echo "git rev-parse accepted an invalid .git file path"
false
fi &&
if ! grep "Not a git repository" .err
then
echo "git rev-parse returned wrong error"
false
fi
test_must_fail git rev-parse 2>.err &&
grep "Not a git repository" .err
'

test_expect_success 'final setup + check rev-parse --git-dir' '
@ -60,7 +35,7 @@ test_expect_success 'final setup + check rev-parse --git-dir' '
test_expect_success 'check hash-object' '
echo "foo" >bar &&
SHA=$(cat bar | git hash-object -w --stdin) &&
objck $SHA
test_path_is_file "$REAL/objects/$(objpath $SHA)"
'

test_expect_success 'check cat-file' '
@ -69,29 +44,21 @@ test_expect_success 'check cat-file' '
'

test_expect_success 'check update-index' '
if test -f "$REAL/index"
then
echo "Hmm, $REAL/index exists?"
false
fi &&
test_path_is_missing "$REAL/index" &&
rm -f "$REAL/objects/$(objpath $SHA)" &&
git update-index --add bar &&
if ! test -f "$REAL/index"
then
echo "$REAL/index not found"
false
fi &&
objck $SHA
test_path_is_file "$REAL/index" &&
test_path_is_file "$REAL/objects/$(objpath $SHA)"
'

test_expect_success 'check write-tree' '
SHA=$(git write-tree) &&
objck $SHA
test_path_is_file "$REAL/objects/$(objpath $SHA)"
'

test_expect_success 'check commit-tree' '
SHA=$(echo "commit bar" | git commit-tree $SHA) &&
objck $SHA
test_path_is_file "$REAL/objects/$(objpath $SHA)"
'

test_expect_success 'check rev-list' '