2bbcddee87
We use 'A' for added files instead of 'N' to make the it visually easier to distinguish from 'M' now. While we are at it, make the test scripts executable. Yes, I know it does not matter because t/Makefile runs them explicitly with "sh tXXXX-blah.sh", but being consistent is always better. Signed-off-by: Junio C Hamano <junkio@cox.net>
96 lines
2.5 KiB
Bash
Executable File
96 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2005 Junio C Hamano
|
|
#
|
|
|
|
test_description='git-checkout-cache --prefix test.
|
|
|
|
This test makes sure that --prefix option works as advertised, and
|
|
also verifies that such leading path may contain symlinks, unlike
|
|
the GIT controlled paths.
|
|
'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success \
|
|
'setup' \
|
|
'mkdir path1 &&
|
|
echo frotz >path0 &&
|
|
echo rezrov >path1/file1 &&
|
|
git-update-cache --add path0 path1/file1'
|
|
|
|
test_expect_success \
|
|
'have symlink in place where dir is expected.' \
|
|
'rm -fr path0 path1 &&
|
|
mkdir path2 &&
|
|
ln -s path2 path1 &&
|
|
git-checkout-cache -f -a &&
|
|
test ! -h path1 && test -d path1 &&
|
|
test -f path1/file1 && test ! -f path2/file1'
|
|
|
|
test_expect_success \
|
|
'use --prefix=path2/' \
|
|
'rm -fr path0 path1 path2 &&
|
|
mkdir path2 &&
|
|
git-checkout-cache --prefix=path2/ -f -a &&
|
|
test -f path2/path0 &&
|
|
test -f path2/path1/file1 &&
|
|
test ! -f path0 &&
|
|
test ! -f path1/file1'
|
|
|
|
test_expect_success \
|
|
'use --prefix=tmp-' \
|
|
'rm -fr path0 path1 path2 tmp* &&
|
|
git-checkout-cache --prefix=tmp- -f -a &&
|
|
test -f tmp-path0 &&
|
|
test -f tmp-path1/file1 &&
|
|
test ! -f path0 &&
|
|
test ! -f path1/file1'
|
|
|
|
test_expect_success \
|
|
'use --prefix=tmp- but with a conflicting file and dir' \
|
|
'rm -fr path0 path1 path2 tmp* &&
|
|
echo nitfol >tmp-path1 &&
|
|
mkdir tmp-path0 &&
|
|
git-checkout-cache --prefix=tmp- -f -a &&
|
|
test -f tmp-path0 &&
|
|
test -f tmp-path1/file1 &&
|
|
test ! -f path0 &&
|
|
test ! -f path1/file1'
|
|
|
|
# Linus fix #1
|
|
test_expect_success \
|
|
'use --prefix=tmp/orary/ where tmp is a symlink' \
|
|
'rm -fr path0 path1 path2 tmp* &&
|
|
mkdir tmp1 tmp1/orary &&
|
|
ln -s tmp1 tmp &&
|
|
git-checkout-cache --prefix=tmp/orary/ -f -a &&
|
|
test -d tmp1/orary &&
|
|
test -f tmp1/orary/path0 &&
|
|
test -f tmp1/orary/path1/file1 &&
|
|
test -h tmp'
|
|
|
|
# Linus fix #2
|
|
test_expect_success \
|
|
'use --prefix=tmp/orary- where tmp is a symlink' \
|
|
'rm -fr path0 path1 path2 tmp* &&
|
|
mkdir tmp1 &&
|
|
ln -s tmp1 tmp &&
|
|
git-checkout-cache --prefix=tmp/orary- -f -a &&
|
|
test -f tmp1/orary-path0 &&
|
|
test -f tmp1/orary-path1/file1 &&
|
|
test -h tmp'
|
|
|
|
# Linus fix #3
|
|
test_expect_success \
|
|
'use --prefix=tmp- where tmp-path1 is a symlink' \
|
|
'rm -fr path0 path1 path2 tmp* &&
|
|
mkdir tmp1 &&
|
|
ln -s tmp1 tmp-path1 &&
|
|
git-checkout-cache --prefix=tmp- -f -a &&
|
|
test -f tmp-path0 &&
|
|
test ! -h tmp-path1 &&
|
|
test -d tmp-path1 &&
|
|
test -f tmp-path1/file1'
|
|
|