Skip to content

Commit

Permalink
Merge branch 'jc/test-prereq' into maint
Browse files Browse the repository at this point in the history
* jc/test-prereq:
  t3910: use the UTF8_NFD_TO_NFC test prereq
  test-lib: provide UTF8 behaviour as a prerequisite
  t0050: use the SYMLINKS test prereq
  t0050: use the CASE_INSENSITIVE_FS test prereq
  test-lib: provide case insensitivity as a prerequisite
  test: allow prerequisite to be evaluated lazily
  test: rename $satisfied to $satisfied_prereq
  • Loading branch information
Junio C Hamano committed Sep 11, 2012
2 parents 23193cf + 308566e commit 6508d03
Show file tree
Hide file tree
Showing 6 changed files with 233 additions and 205 deletions.
9 changes: 9 additions & 0 deletions t/README
Original file line number Diff line number Diff line change
Expand Up @@ -625,6 +625,15 @@ use these, and "test_set_prereq" for how to define your own.
Git was compiled with USE_LIBPCRE=YesPlease. Wrap any tests
that use git-grep --perl-regexp or git-grep -P in these.

- CASE_INSENSITIVE_FS

Test is run on a case insensitive file system.

- UTF8_NFD_TO_NFC

Test is run on a filesystem which converts decomposed utf-8 (nfd)
to precomposed utf-8 (nfc).

Tips for Writing Tests
----------------------

Expand Down
10 changes: 0 additions & 10 deletions t/t0003-attributes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -123,16 +123,6 @@ test_expect_success 'attribute matching is case insensitive when core.ignorecase
'

test_expect_success 'check whether FS is case-insensitive' '
mkdir junk &&
echo good >junk/CamelCase &&
echo bad >junk/camelcase &&
if test "$(cat junk/CamelCase)" != good
then
test_set_prereq CASE_INSENSITIVE_FS
fi
'

test_expect_success CASE_INSENSITIVE_FS 'additional case insensitivity tests' '
test_must_fail attr_check a/B/D/g "a/b/d/*" "-c core.ignorecase=0" &&
test_must_fail attr_check A/B/D/NO "a/b/d/*" "-c core.ignorecase=0" &&
Expand Down
64 changes: 21 additions & 43 deletions t/t0050-filesystem.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,48 +7,26 @@ test_description='Various filesystem issues'
auml=$(printf '\303\244')
aumlcdiar=$(printf '\141\314\210')

case_insensitive=
unibad=
no_symlinks=
test_expect_success 'see what we expect' '
test_case=test_expect_success &&
test_unicode=test_expect_success &&
mkdir junk &&
echo good >junk/CamelCase &&
echo bad >junk/camelcase &&
if test "$(cat junk/CamelCase)" != good
then
test_case=test_expect_failure &&
case_insensitive=t
fi &&
rm -fr junk &&
mkdir junk &&
>junk/"$auml" &&
case "$(cd junk && echo *)" in
"$aumlcdiar")
test_unicode=test_expect_failure &&
unibad=t
;;
*) ;;
esac &&
rm -fr junk &&
{
ln -s x y 2> /dev/null &&
test -h y 2> /dev/null ||
no_symlinks=1 &&
rm -f y
}
'

test "$case_insensitive" &&
if test_have_prereq CASE_INSENSITIVE_FS
then
say "will test on a case insensitive filesystem"
test "$unibad" &&
test_case=test_expect_failure
else
test_case=test_expect_success
fi

if test_have_prereq UTF8_NFD_TO_NFC
then
say "will test on a unicode corrupting filesystem"
test "$no_symlinks" &&
test_unicode=test_expect_failure
else
test_unicode=test_expect_success
fi

test_have_prereq SYMLINKS ||
say "will test on a filesystem lacking symbolic links"

if test "$case_insensitive"
if test_have_prereq CASE_INSENSITIVE_FS
then
test_expect_success "detection of case insensitive filesystem during repo init" '
Expand All @@ -62,18 +40,18 @@ test_expect_success "detection of case insensitive filesystem during repo init"
'
fi

if test "$no_symlinks"
if test_have_prereq SYMLINKS
then
test_expect_success "detection of filesystem w/o symlink support during repo init" '
v=$(git config --bool core.symlinks) &&
test "$v" = false
test_must_fail git config --bool core.symlinks ||
test "$(git config --bool core.symlinks)" = true
'
else
test_expect_success "detection of filesystem w/o symlink support during repo init" '
test_must_fail git config --bool core.symlinks ||
test "$(git config --bool core.symlinks)" = true
v=$(git config --bool core.symlinks) &&
test "$v" = false
'
fi

Expand Down
Loading

0 comments on commit 6508d03

Please sign in to comment.