t5600-clone-fail-cleanup.sh [plain text]
#!/bin/sh
test_description='test git clone to cleanup after failure
This test covers the fact that if git clone fails, it should remove
the directory it created, to avoid the user having to manually
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 \
'failed clone should not leave a directory' \
'! test -d bar'
test_create_repo foo
(cd foo && touch file && git add file && git commit -m 'add file' >/dev/null 2>&1)
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 \
'successful clone must leave the directory' \
'cd bar'
test_done