t9103: modernize test style

The main goal here was to avoid double-quotes for
surrounding the test snippet, since it makes the code hard
to read (and to grep for common problems).

But while we're here, we can fix a few other things:

  - use test_path_* helpers, which are more robust and give
    better error messages

  - only "cd" inside a subshell, which leaves the
    environment pristine if further tests are added

  - consistently quote shell arguments. These aren't wrong
    if we assume find-rev output doesn't have any
    whitespace, but it doesn't hurt to be careful.

  - replace the old-style 'test x$foo = x' with 'test -z
    "$foo"'. Besides the quoting fix, this is the form we
    generally use in our test suite.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2016-05-13 16:47:28 -04:00 committed by Junio C Hamano
parent 9874576995
commit 2a86cb6dc4

View File

@ -23,17 +23,19 @@ test_expect_success 'make history for tracking' '
test_expect_success 'clone repo with git' '
git svn clone -s "$svnrepo" x &&
test -f x/FOLLOWME &&
test ! -f x/README
test_path_is_file x/FOLLOWME &&
test_path_is_missing x/README
'
test_expect_success 'make sure r2 still has old file' "
cd x &&
test -n \"\$(git svn find-rev r1)\" &&
git reset --hard \$(git svn find-rev r1) &&
test -f README &&
test ! -f FOLLOWME &&
test x\$(git svn find-rev r2) = x
"
test_expect_success 'make sure r2 still has old file' '
(
cd x &&
test -n "$(git svn find-rev r1)" &&
git reset --hard "$(git svn find-rev r1)" &&
test_path_is_file README &&
test_path_is_missing FOLLOWME &&
test -z "$(git svn find-rev r2)"
)
'
test_done