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 коммит произвёл Junio C Hamano
Родитель a4c4efd251
Коммит 8486b84f0e
1 изменённых файлов: 25 добавлений и 23 удалений

Просмотреть файл

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