Merge branch 'js/windows-tests'

* js/windows-tests:
  t5602: Work around path mangling on MSYS
  t5300, t5302, t5303: Do not use /dev/zero
  t2200, t7004: Avoid glob pattern that also matches files
  t7300: fix clean up on Windows
  test-lib: Introduce test_chmod and use it instead of update-index --chmod
  test-lib: Simplify test counting.
  test-lib: Replace uses of $(expr ...) by POSIX shell features.
  Call 'say' outside test_expect_success
  test suite: Use 'say' to say something instead of 'test_expect_success'
  t9400, t9401: Do not force hard-linked clone
This commit is contained in:
Junio C Hamano 2009-03-19 16:00:15 -07:00
commit 6066f5ae75
26 changed files with 98 additions and 119 deletions

View File

@ -5,7 +5,7 @@ git_svn_id=git""-svn-id
if test -n "$NO_SVN_TESTS"
then
test_expect_success 'skipping git svn tests, NO_SVN_TESTS defined' :
say 'skipping git svn tests, NO_SVN_TESTS defined'
test_done
exit
fi
@ -17,7 +17,7 @@ SVN_TREE=$GIT_SVN_DIR/svn-tree
svn >/dev/null 2>&1
if test $? -ne 1
then
test_expect_success 'skipping git svn tests, svn not found' :
say 'skipping git svn tests, svn not found'
test_done
exit
fi
@ -41,7 +41,7 @@ then
else
err='Perl SVN libraries not found or unusable, skipping test'
fi
test_expect_success "$err" :
say "$err"
test_done
exit
fi

View File

@ -28,7 +28,7 @@ test_expect_success 'tar archive' '
"$UNZIP" -v >/dev/null 2>&1
if [ $? -eq 127 ]; then
echo "Skipping ZIP test, because unzip was not found"
say "Skipping ZIP test, because unzip was not found"
test_done
exit
fi

View File

@ -8,6 +8,7 @@ auml=`printf '\xc3\xa4'`
aumlcdiar=`printf '\x61\xcc\x88'`
case_insensitive=
unibad=
test_expect_success 'see if we expect ' '
test_case=test_expect_success
@ -19,7 +20,6 @@ test_expect_success 'see if we expect ' '
then
test_case=test_expect_failure
case_insensitive=t
say "will test on a case insensitive filesystem"
fi &&
rm -fr junk &&
mkdir junk &&
@ -27,13 +27,18 @@ test_expect_success 'see if we expect ' '
case "$(cd junk && echo *)" in
"$aumlcdiar")
test_unicode=test_expect_failure
say "will test on a unicode corrupting filesystem"
unibad=t
;;
*) ;;
esac &&
rm -fr junk
'
test "$case_insensitive" &&
say "will test on a case insensitive filesystem"
test "$unibad" &&
say "will test on a unicode corrupting filesystem"
if test "$case_insensitive"
then
test_expect_success "detection of case insensitive filesystem during repo init" '

View File

@ -70,9 +70,7 @@ test_expect_success setup '
E=`git rev-parse --verify HEAD:A/B/E` &&
check_fsck &&
chmod +x C &&
( test "`git config --bool core.filemode`" != false ||
echo executable >>C ) &&
test_chmod +x C &&
git add C &&
test_tick && git commit -m dragon &&
L=`git rev-parse --verify HEAD` &&

View File

@ -150,7 +150,7 @@ test_expect_success 'add -u resolves unmerged paths' '
echo 2 >path3 &&
echo 2 >path5 &&
git add -u &&
git ls-files -s "path?" >actual &&
git ls-files -s path1 path2 path3 path4 path5 path6 >actual &&
{
echo "100644 $three 0 path1"
echo "100644 $one 1 path3"

View File

@ -83,9 +83,9 @@ test_expect_success 'rebase a single mode change' '
git checkout -b modechange HEAD^ &&
echo 1 > X &&
git add X &&
chmod a+x A &&
test_chmod +x A &&
test_tick &&
git commit -m modechange A X &&
git commit -m modechange &&
GIT_TRACE=1 git rebase master
'

View File

@ -21,10 +21,11 @@ embedded'
embedded' &&
git commit -m 'add files with tabs and newlines'
else
say 'Your filesystem does not allow tabs in filenames.'
test_tabs=n
fi"
test "$test_tabs" = n && say 'Your filesystem does not allow tabs in filenames.'
# Later we will try removing an unremovable path to make sure
# git rm barfs, but if the test is run as root that cannot be
# arranged.
@ -112,7 +113,7 @@ test_expect_success \
'test_must_fail git rm -f baz'
chmod 775 .
else
test_expect_success 'skipping removal failure (perhaps running as root?)' :
say 'skipping removal failure test (perhaps running as root?)'
fi
test_expect_success \

View File

@ -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"

View File

@ -101,8 +101,7 @@ do
'' | '#'*) continue ;;
esac
test=`echo "$cmd" | sed -e 's|[/ ][/ ]*|_|g'`
cnt=`expr $test_count + 1`
pfx=`printf "%04d" $cnt`
pfx=`printf "%04d" $test_count`
expect="$TEST_DIRECTORY/t4013/diff.$test"
actual="$pfx-diff.$test"

View File

@ -16,9 +16,7 @@ test_expect_success setup '
git checkout -b side &&
for i in 1 2 5 6 A B C 7 8 9 10; do echo "$i"; done >file &&
chmod +x elif &&
git update-index file elif &&
git update-index --chmod=+x elif &&
test_chmod +x elif &&
git commit -m "Side changes #1" &&
for i in D E F; do echo "$i"; done >>file &&

View File

@ -182,7 +182,7 @@ test_expect_success 'git archive --format=zip with --output' \
$UNZIP -v >/dev/null 2>&1
if [ $? -eq 127 ]; then
echo "Skipping ZIP tests, because unzip was not found"
say "Skipping ZIP tests, because unzip was not found"
test_done
exit
fi

View File

@ -13,11 +13,10 @@ TRASH=`pwd`
test_expect_success \
'setup' \
'rm -f .git/index*
for i in a b c
do
dd if=/dev/zero bs=4k count=1 | perl -pe "y/\\000/$i/" >$i &&
git update-index --add $i || return 1
done &&
perl -e "print \"a\" x 4096;" > a &&
perl -e "print \"b\" x 4096;" > b &&
perl -e "print \"c\" x 4096;" > c &&
git update-index --add a b c &&
cat c >d && echo foo >>d && git update-index --add d &&
tree=`git write-tree` &&
commit=`git commit-tree $tree </dev/null` && {
@ -221,7 +220,7 @@ test_expect_success \
test_expect_success \
'verify-pack catches a corrupted pack signature' \
'cat test-1-${packname_1}.pack >test-3.pack &&
dd if=/dev/zero of=test-3.pack count=1 bs=1 conv=notrunc seek=2 &&
echo | dd of=test-3.pack count=1 bs=1 conv=notrunc seek=2 &&
if git verify-pack test-3.idx
then false
else :;
@ -230,7 +229,7 @@ test_expect_success \
test_expect_success \
'verify-pack catches a corrupted pack version' \
'cat test-1-${packname_1}.pack >test-3.pack &&
dd if=/dev/zero of=test-3.pack count=1 bs=1 conv=notrunc seek=7 &&
echo | dd of=test-3.pack count=1 bs=1 conv=notrunc seek=7 &&
if git verify-pack test-3.idx
then false
else :;
@ -239,7 +238,7 @@ test_expect_success \
test_expect_success \
'verify-pack catches a corrupted type/size of the 1st packed object data' \
'cat test-1-${packname_1}.pack >test-3.pack &&
dd if=/dev/zero of=test-3.pack count=1 bs=1 conv=notrunc seek=12 &&
echo | dd of=test-3.pack count=1 bs=1 conv=notrunc seek=12 &&
if git verify-pack test-3.idx
then false
else :;
@ -250,7 +249,7 @@ test_expect_success \
'l=`wc -c <test-3.idx` &&
l=`expr $l - 20` &&
cat test-1-${packname_1}.pack >test-3.pack &&
dd if=/dev/zero of=test-3.idx count=20 bs=1 conv=notrunc seek=$l &&
printf "%20s" "" | dd of=test-3.idx count=20 bs=1 conv=notrunc seek=$l &&
if git verify-pack test-3.pack
then false
else :;

View File

@ -208,7 +208,7 @@ test_expect_success \
obj=`git hash-object file_001` &&
nr=`index_obj_nr ".git/objects/pack/pack-${pack1}.idx" $obj` &&
chmod +w ".git/objects/pack/pack-${pack1}.idx" &&
dd if=/dev/zero of=".git/objects/pack/pack-${pack1}.idx" conv=notrunc \
printf xxxx | dd of=".git/objects/pack/pack-${pack1}.idx" conv=notrunc \
bs=1 count=4 seek=$((8 + 256 * 4 + `wc -l <obj-list` * 20 + $nr * 4)) &&
( while read obj
do git cat-file -p $obj >/dev/null || exit 1

View File

@ -55,6 +55,8 @@ do_corrupt_object() {
test_must_fail git verify-pack ${pack}.pack
}
printf '\0' > zero
test_expect_success \
'initial setup validation' \
'create_test_files &&
@ -66,7 +68,7 @@ test_expect_success \
test_expect_success \
'create corruption in header of first object' \
'do_corrupt_object $blob_1 0 < /dev/zero &&
'do_corrupt_object $blob_1 0 < zero &&
test_must_fail git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null'
@ -125,7 +127,7 @@ test_expect_success \
'create corruption in header of first delta' \
'create_new_pack &&
git prune-packed &&
do_corrupt_object $blob_2 0 < /dev/zero &&
do_corrupt_object $blob_2 0 < zero &&
git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null'
@ -180,7 +182,7 @@ test_expect_success \
'corruption in delta base reference of first delta (OBJ_REF_DELTA)' \
'create_new_pack &&
git prune-packed &&
do_corrupt_object $blob_2 2 < /dev/zero &&
do_corrupt_object $blob_2 2 < zero &&
git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null'
@ -207,7 +209,7 @@ test_expect_success \
'corruption #0 in delta base reference of first delta (OBJ_OFS_DELTA)' \
'create_new_pack --delta-base-offset &&
git prune-packed &&
do_corrupt_object $blob_2 2 < /dev/zero &&
do_corrupt_object $blob_2 2 < zero &&
git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null'
@ -259,7 +261,7 @@ test_expect_success \
test_expect_success \
'... and a redundant pack allows for full recovery too' \
'do_corrupt_object $blob_2 2 < /dev/zero &&
'do_corrupt_object $blob_2 2 < zero &&
git cat-file blob $blob_1 > /dev/null &&
test_must_fail git cat-file blob $blob_2 > /dev/null &&
test_must_fail git cat-file blob $blob_3 > /dev/null &&

View File

@ -129,8 +129,7 @@ do
'' | '#'*) continue ;;
esac
test=`echo "$cmd" | sed -e 's|[/ ][/ ]*|_|g'`
cnt=`expr $test_count + 1`
pfx=`printf "%04d" $cnt`
pfx=`printf "%04d" $test_count`
expect_f="$TEST_DIRECTORY/t5515/fetch.$test"
actual_f="$pfx-fetch.$test"
expect_r="$TEST_DIRECTORY/t5515/refs.$test"

View File

@ -18,8 +18,8 @@ test_expect_success 'clone calls git upload-pack unqualified with no -u option'
'
test_expect_success 'clone calls specified git upload-pack with -u option' '
GIT_SSH=./not_ssh git clone -u /something/bin/git-upload-pack localhost:/path/to/repo junk
echo "localhost /something/bin/git-upload-pack '\''/path/to/repo'\''" >expected
GIT_SSH=./not_ssh git clone -u ./something/bin/git-upload-pack localhost:/path/to/repo junk
echo "localhost ./something/bin/git-upload-pack '\''/path/to/repo'\''" >expected
test_cmp expected not_ssh_output
'

View File

@ -3,9 +3,6 @@
test_description='merge-recursive: handle file mode'
. ./test-lib.sh
# Note that we follow "chmod +x F" with "update-index --chmod=+x F" to
# help filesystems that do not have the executable bit.
test_expect_success 'mode change in one branch: keep changed version' '
: >file1 &&
git add file1 &&
@ -15,8 +12,7 @@ test_expect_success 'mode change in one branch: keep changed version' '
git add dummy &&
git commit -m a &&
git checkout -b b1 master &&
chmod +x file1 &&
git update-index --chmod=+x file1 &&
test_chmod +x file1 &&
git commit -m b1 &&
git checkout a1 &&
git merge-recursive master -- a1 b1 &&
@ -28,8 +24,7 @@ test_expect_success 'mode change in both branches: expect conflict' '
git checkout -b a2 master &&
: >file2 &&
H=$(git hash-object file2) &&
chmod +x file2 &&
git update-index --add --chmod=+x file2 &&
test_chmod +x file2 &&
git commit -m a2 &&
git checkout -b b2 master &&
: >file2 &&

View File

@ -185,8 +185,9 @@ cba
EOF
test_expect_success \
'listing tags with substring as pattern must print those matching' '
git tag -l "*a*" > actual &&
test_cmp expect actual
rm *a* &&
git tag -l "*a*" > current &&
test_cmp expect current
'
cat >expect <<EOF
@ -582,7 +583,7 @@ test_expect_success \
# subsequent tests require gpg; check if it is available
gpg --version >/dev/null
if [ $? -eq 127 ]; then
echo "gpg not found - skipping tag signing and verification tests"
say "gpg not found - skipping tag signing and verification tests"
test_done
exit
fi
@ -614,7 +615,7 @@ test_expect_success \
# that version, creation of signed tags using the generated key fails.
case "$(gpg --version)" in
'gpg (GnuPG) 1.0.6'*)
echo "Skipping signed tag tests, because a bug in 1.0.6 version"
say "Skipping signed tag tests, because a bug in 1.0.6 version"
test_done
exit
;;

View File

@ -87,30 +87,27 @@ do
'
done
if ! echo 'echo space > "$1"' > "e space.sh"
then
say "Skipping; FS does not support spaces in filenames"
test_done
exit
fi
test_expect_success 'editor with a space' '
if echo "echo space > \"\$1\"" > "e space.sh"
then
chmod a+x "e space.sh" &&
GIT_EDITOR="./e\ space.sh" git commit --amend &&
test space = "$(git show -s --pretty=format:%s)"
else
say "Skipping; FS does not support spaces in filenames"
fi
chmod a+x "e space.sh" &&
GIT_EDITOR="./e\ space.sh" git commit --amend &&
test space = "$(git show -s --pretty=format:%s)"
'
unset GIT_EDITOR
test_expect_success 'core.editor with a space' '
if test -f "e space.sh"
then
git config core.editor \"./e\ space.sh\" &&
git commit --amend &&
test space = "$(git show -s --pretty=format:%s)"
else
say "Skipping; FS does not support spaces in filenames"
fi
git config core.editor \"./e\ space.sh\" &&
git commit --amend &&
test space = "$(git show -s --pretty=format:%s)"
'

View File

@ -373,9 +373,9 @@ test_expect_success 'removal failure' '
mkdir foo &&
touch foo/bar &&
exec <foo/bar &&
chmod 0 foo &&
test_must_fail git clean -f -d
(exec <foo/bar &&
chmod 0 foo &&
test_must_fail git clean -f -d)
'
chmod 755 foo

View File

@ -9,7 +9,7 @@ test_description='Test export of commits to CVS'
cvs >/dev/null 2>&1
if test $? -ne 1
then
test_expect_success 'skipping git cvsexportcommit tests, cvs not found' :
say 'skipping git cvsexportcommit tests, cvs not found'
test_done
exit
fi

View File

@ -13,12 +13,12 @@ cvs CLI client via git-cvsserver server'
cvs >/dev/null 2>&1
if test $? -ne 1
then
test_expect_success 'skipping git-cvsserver tests, cvs not found' :
say 'skipping git-cvsserver tests, cvs not found'
test_done
exit
fi
perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
test_expect_success 'skipping git-cvsserver tests, Perl SQLite interface unavailable' :
say 'skipping git-cvsserver tests, Perl SQLite interface unavailable'
test_done
exit
}
@ -44,7 +44,7 @@ test_expect_success 'setup' '
git add secondrootfile &&
git commit -m "second root") &&
git pull secondroot master &&
git clone -q --local --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
git clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&
GIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log"
'
@ -267,7 +267,7 @@ test_expect_success 'gitcvs.ext.dbname' \
rm -fr "$SERVERDIR"
cd "$WORKDIR" &&
git clone -q --local --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
git clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&
GIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log" ||
exit 1

View File

@ -49,12 +49,12 @@ not_present() {
cvs >/dev/null 2>&1
if test $? -ne 1
then
test_expect_success 'skipping git-cvsserver tests, cvs not found' :
say 'skipping git-cvsserver tests, cvs not found'
test_done
exit
fi
perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
test_expect_success 'skipping git-cvsserver tests, Perl SQLite interface unavailable' :
say 'skipping git-cvsserver tests, Perl SQLite interface unavailable'
test_done
exit
}
@ -84,7 +84,7 @@ test_expect_success 'setup' '
echo "subdir/file.h crlf" >> .gitattributes &&
git add .gitattributes textfile.c binfile.bin mixedUp.c subdir/* &&
git commit -q -m "First Commit" &&
git clone -q --local --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
git clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&
GIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log"
'

View File

@ -63,18 +63,10 @@ gitweb_run () {
# gitweb.log is left for debugging
}
safe_chmod () {
chmod "$1" "$2" &&
if [ "$(git config --get core.filemode)" = false ]
then
git update-index --chmod="$1" "$2"
fi
}
. ./test-lib.sh
perl -MEncode -e 'decode_utf8("", Encode::FB_CROAK)' >/dev/null 2>&1 || {
test_expect_success 'skipping gitweb tests, perl version is too old' :
say 'skipping gitweb tests, perl version is too old'
test_done
exit
}
@ -242,7 +234,7 @@ test_debug 'cat gitweb.log'
test_expect_success \
'commitdiff(0): mode change' \
'safe_chmod +x new_file &&
'test_chmod +x new_file &&
git commit -a -m "Mode changed." &&
gitweb_run "p=.git;a=commitdiff"'
test_debug 'cat gitweb.log'
@ -281,7 +273,7 @@ test_debug 'cat gitweb.log'
test_expect_success \
'commitdiff(0): mode change and modified' \
'echo "New line" >> file2 &&
safe_chmod +x file2 &&
test_chmod +x file2 &&
git commit -a -m "Mode change and modification." &&
gitweb_run "p=.git;a=commitdiff"'
test_debug 'cat gitweb.log'
@ -308,7 +300,7 @@ test_expect_success \
'commitdiff(0): renamed, mode change and modified' \
'git mv file3 file2 &&
echo "Propter nomen suum." >> file2 &&
safe_chmod +x file2 &&
test_chmod +x file2 &&
git commit -a -m "File rename, mode change and modification." &&
gitweb_run "p=.git;a=commitdiff"'
test_debug 'cat gitweb.log'
@ -425,10 +417,10 @@ test_expect_success \
git add 03-new &&
git mv 04-rename-from 04-rename-to &&
echo "Changed" >> 04-rename-to &&
safe_chmod +x 05-mode-change &&
test_chmod +x 05-mode-change &&
rm -f 06-file-or-symlink && ln -s 01-change 06-file-or-symlink &&
echo "Changed and have mode changed" > 07-change-mode-change &&
safe_chmod +x 07-change-mode-change &&
test_chmod +x 07-change-mode-change &&
git commit -a -m "Large commit" &&
git checkout master'

View File

@ -7,7 +7,7 @@ test_description='perl interface (Git.pm)'
. ./test-lib.sh
perl -MTest::More -e 0 2>/dev/null || {
say_color skip "Perl Test::More unavailable, skipping test"
say "Perl Test::More unavailable, skipping test"
test_done
}

View File

@ -238,18 +238,25 @@ test_merge () {
git tag "$1"
}
# This function helps systems where core.filemode=false is set.
# Use it instead of plain 'chmod +x' to set or unset the executable bit
# of a file in the working directory and add it to the index.
test_chmod () {
chmod "$@" &&
git update-index --add "--chmod=$@"
}
# You are not expected to call test_ok_ and test_failure_ directly, use
# the text_expect_* functions instead.
test_ok_ () {
test_count=$(expr "$test_count" + 1)
test_success=$(expr "$test_success" + 1)
test_success=$(($test_success + 1))
say_color "" " ok $test_count: $@"
}
test_failure_ () {
test_count=$(expr "$test_count" + 1)
test_failure=$(expr "$test_failure" + 1);
test_failure=$(($test_failure + 1))
say_color error "FAIL $test_count: $1"
shift
echo "$@" | sed -e 's/^/ /'
@ -257,13 +264,11 @@ test_failure_ () {
}
test_known_broken_ok_ () {
test_count=$(expr "$test_count" + 1)
test_fixed=$(($test_fixed+1))
say_color "" " FIXED $test_count: $@"
}
test_known_broken_failure_ () {
test_count=$(expr "$test_count" + 1)
test_broken=$(($test_broken+1))
say_color skip " still broken $test_count: $@"
}
@ -279,12 +284,11 @@ test_run_ () {
}
test_skip () {
this_test=$(expr "./$0" : '.*/\(t[0-9]*\)-[^/]*$')
this_test="$this_test.$(expr "$test_count" + 1)"
test_count=$(($test_count+1))
to_skip=
for skp in $GIT_SKIP_TESTS
do
case "$this_test" in
case $this_test.$test_count in
$skp)
to_skip=t
esac
@ -292,7 +296,6 @@ test_skip () {
case "$to_skip" in
t)
say_color skip >&3 "skipping test: $@"
test_count=$(expr "$test_count" + 1)
say_color skip "skip $test_count: $1"
: true
;;
@ -370,7 +373,7 @@ test_external () {
then
# Announce the script to reduce confusion about the
# test output that follows.
say_color "" " run $(expr "$test_count" + 1): $descr ($*)"
say_color "" " run $test_count: $descr ($*)"
# Run command; redirect its stderr to &4 as in
# test_run_, but keep its stdout on our stdout even in
# non-verbose mode.
@ -613,7 +616,8 @@ test_create_repo "$test"
# in subprocesses like git equals our $PWD (for pathname comparisons).
cd -P "$test" || exit 1
this_test=$(expr "./$0" : '.*/\(t[0-9]*\)-[^/]*$')
this_test=${0##*/}
this_test=${this_test%%-*}
for skp in $GIT_SKIP_TESTS
do
to_skip=