test-lib: Introduce test_chmod and use it instead of update-index --chmod
This function replaces sequences of 'chmod +x' and 'git update-index --chmod=+x' in the test suite, whose purpose is to help filesystems that need core.filemode=false. Two places where only 'chmod +x' was used we also use this new function. The function calls 'git update-index --chmod' without checking core.filemode (unlike some of the call sites did). We do this because the call sites *expect* that the executable bit ends up in the index (ie. it is not the purpose of the call sites to *test* whether git treats 'chmod +x' and 'update-index --chmod=+x' correctly). Therefore, on filesystems with core.filemode=true the 'git update-index --chmod' is a no-op. The function uses --add with update-index to help one call site in t6031-merge-recursive. It makes no difference for the other callers. Signed-off-by: Johannes Sixt <j6t@kdbg.org>
This commit is contained in:
@ -15,21 +15,10 @@ test_expect_success \
|
||||
tree=`git write-tree` &&
|
||||
echo $tree'
|
||||
|
||||
if [ "$(git config --get core.filemode)" = false ]
|
||||
then
|
||||
say 'filemode disabled on the filesystem, using update-index --chmod=+x'
|
||||
test_expect_success \
|
||||
'git update-index --chmod=+x' \
|
||||
'git update-index rezrov &&
|
||||
git update-index --chmod=+x rezrov &&
|
||||
git diff-index $tree >current'
|
||||
else
|
||||
test_expect_success \
|
||||
'chmod' \
|
||||
'chmod +x rezrov &&
|
||||
git update-index rezrov &&
|
||||
git diff-index $tree >current'
|
||||
fi
|
||||
test_expect_success \
|
||||
'chmod' \
|
||||
'test_chmod +x rezrov &&
|
||||
git diff-index $tree >current'
|
||||
|
||||
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
|
||||
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
|
||||
|
Reference in New Issue
Block a user