git-commit-vandalism/t/t1000-checkout-cache.sh
Junio C Hamano 368f99d57e [PATCH 2/2] The core GIT tests: recent additions and fixes.
This set of scripts are designed to test the features and fixes
we recently added to core GIT.  The convention to call test
helper function has been changed during the framework cleanup
(take two), and these tests have been updated to use the cleaned
up test-lib.sh interface.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Note that this does not include the t2000-diff.sh script since it
tests a patch which was not applied yet.

Signed-off-by: Petr Baudis <pasky@ucw.cz>
2005-05-14 17:41:01 +02:00

57 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#
test_description='git-checkout-cache test.
This test registers the following filesystem structure in the
cache:
path0 - a file
path1/file1 - a file in a directory
And then tries to checkout in a work tree that has the following:
path0/file0 - a file in a directory
path1 - a file
The git-checkout-cache command should fail when attempting to checkout
path0, finding it is occupied by a directory, and path1/file1, finding
path1 is occupied by a non-directory. With "-f" flag, it should remove
the conflicting paths and succeed.
'
. ./test-lib.sh
date >path0
mkdir path1
date >path1/file1
test_expect_success \
'git-update-cache --add various paths.' \
'git-update-cache --add path0 path1/file1'
rm -fr path0 path1
mkdir path0
date >path0/file0
date >path1
test_expect_failure \
'git-checkout-cache without -f should fail on conflicting work tree.' \
'git-checkout-cache -a'
test_expect_success \
'git-checkout-cache with -f should succeed.' \
'git-checkout-cache -f -a'
if test -f path0 && test -d path1 && test -f path1/file1
then
test_ok "checkout successful"
else
test_failure "checkout failed"
fi
test_done