t5600: modernize style

This is an old script which could use some updating before
we add to it:

  - use the standard line-breaking:

      test_expect_success 'title' '
              body
      '

  - run all code inside test_expect blocks to catch
    unexpected failures in setup steps

  - use "test_commit -C" instead of manually entering
    sub-repo

  - use test_when_finished for cleanup steps

  - test_path_is_* as appropriate

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King
2018-01-02 16:09:00 -05:00
committed by Junio C Hamano
parent a4c4efd251
commit 8486b84f0e

View File

@ -11,42 +11,44 @@ remove the directory before attempting a clone again.'
. ./test-lib.sh . ./test-lib.sh
test_expect_success \ test_expect_success 'clone of non-existent source should fail' '
'clone of non-existent source should fail' \ test_must_fail git clone foo bar
'test_must_fail git clone foo bar' '
test_expect_success \ test_expect_success 'failed clone should not leave a directory' '
'failed clone should not leave a directory' \ test_path_is_missing bar
'! test -d bar' '
# Need a repo to clone test_expect_success 'create a repo to clone' '
test_create_repo foo test_create_repo foo
'
# create some objects so that we can corrupt the repo later test_expect_success 'create objects in repo for later corruption' '
(cd foo && touch file && git add file && git commit -m 'add file' >/dev/null 2>&1) test_commit -C foo file
'
# source repository given to git clone should be relative to the # source repository given to git clone should be relative to the
# current path not to the target dir # current path not to the target dir
test_expect_success \ test_expect_success 'clone of non-existent (relative to $PWD) source should fail' '
'clone of non-existent (relative to $PWD) source should fail' \ test_must_fail git clone ../foo baz
'test_must_fail git clone ../foo baz' '
test_expect_success \ test_expect_success 'clone should work now that source exists' '
'clone should work now that source exists' \ git clone foo bar
'git clone foo bar' '
test_expect_success \ test_expect_success 'successful clone must leave the directory' '
'successful clone must leave the directory' \ test_path_is_dir bar
'test -d bar' '
test_expect_success 'failed clone --separate-git-dir should not leave any directories' ' test_expect_success 'failed clone --separate-git-dir should not leave any directories' '
test_when_finished "rmdir foo/.git/objects.bak" &&
mkdir foo/.git/objects.bak/ && mkdir foo/.git/objects.bak/ &&
test_when_finished "mv foo/.git/objects.bak/* foo/.git/objects/" &&
mv foo/.git/objects/* foo/.git/objects.bak/ && mv foo/.git/objects/* foo/.git/objects.bak/ &&
test_must_fail git clone --separate-git-dir gitdir foo worktree && test_must_fail git clone --separate-git-dir gitdir foo worktree &&
test_must_fail test -e gitdir && test_path_is_missing gitdir &&
test_must_fail test -e worktree && test_path_is_missing worktree
mv foo/.git/objects.bak/* foo/.git/objects/ &&
rmdir foo/.git/objects.bak
' '
test_done test_done