Merge branch 'jc/test-prereq'
Teaches the test framework to probe rarely used prerequistes lazily, and make use of it for detecting SYMLINKS, CASE_INSENSITIVE_FS and NKD/NKC MacOS x gotcha. * 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
This commit is contained in:
commit
16a3f91a36
9
t/README
9
t/README
@ -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
|
Git was compiled with USE_LIBPCRE=YesPlease. Wrap any tests
|
||||||
that use git-grep --perl-regexp or git-grep -P in these.
|
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
|
Tips for Writing Tests
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
@ -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_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/g "a/b/d/*" "-c core.ignorecase=0" &&
|
||||||
test_must_fail attr_check A/B/D/NO "a/b/d/*" "-c core.ignorecase=0" &&
|
test_must_fail attr_check A/B/D/NO "a/b/d/*" "-c core.ignorecase=0" &&
|
||||||
|
@ -7,48 +7,26 @@ test_description='Various filesystem issues'
|
|||||||
auml=$(printf '\303\244')
|
auml=$(printf '\303\244')
|
||||||
aumlcdiar=$(printf '\141\314\210')
|
aumlcdiar=$(printf '\141\314\210')
|
||||||
|
|
||||||
case_insensitive=
|
if test_have_prereq CASE_INSENSITIVE_FS
|
||||||
unibad=
|
then
|
||||||
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" &&
|
|
||||||
say "will test on a case insensitive filesystem"
|
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"
|
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"
|
say "will test on a filesystem lacking symbolic links"
|
||||||
|
|
||||||
if test "$case_insensitive"
|
if test_have_prereq CASE_INSENSITIVE_FS
|
||||||
then
|
then
|
||||||
test_expect_success "detection of case insensitive filesystem during repo init" '
|
test_expect_success "detection of case insensitive filesystem during repo init" '
|
||||||
|
|
||||||
@ -62,19 +40,19 @@ test_expect_success "detection of case insensitive filesystem during repo init"
|
|||||||
'
|
'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$no_symlinks"
|
if test_have_prereq SYMLINKS
|
||||||
then
|
then
|
||||||
test_expect_success "detection of filesystem w/o symlink support during repo init" '
|
|
||||||
|
|
||||||
v=$(git config --bool core.symlinks) &&
|
|
||||||
test "$v" = false
|
|
||||||
'
|
|
||||||
else
|
|
||||||
test_expect_success "detection of filesystem w/o symlink support during repo init" '
|
test_expect_success "detection of filesystem w/o symlink support during repo init" '
|
||||||
|
|
||||||
test_must_fail git config --bool core.symlinks ||
|
test_must_fail git config --bool core.symlinks ||
|
||||||
test "$(git config --bool core.symlinks)" = true
|
test "$(git config --bool core.symlinks)" = true
|
||||||
'
|
'
|
||||||
|
else
|
||||||
|
test_expect_success "detection of filesystem w/o symlink support during repo init" '
|
||||||
|
|
||||||
|
v=$(git config --bool core.symlinks) &&
|
||||||
|
test "$v" = false
|
||||||
|
'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
test_expect_success "setup case tests" '
|
test_expect_success "setup case tests" '
|
||||||
|
@ -7,158 +7,147 @@ test_description='utf-8 decomposed (nfd) converted to precomposed (nfc)'
|
|||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if ! test_have_prereq UTF8_NFD_TO_NFC
|
||||||
|
then
|
||||||
|
skip_all="filesystem does not corrupt utf-8"
|
||||||
|
test_done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create utf-8 variables
|
||||||
Adiarnfc=`printf '\303\204'`
|
Adiarnfc=`printf '\303\204'`
|
||||||
Adiarnfd=`printf 'A\314\210'`
|
Adiarnfd=`printf 'A\314\210'`
|
||||||
|
|
||||||
# check if the feature is compiled in
|
Odiarnfc=`printf '\303\226'`
|
||||||
mkdir junk &&
|
Odiarnfd=`printf 'O\314\210'`
|
||||||
>junk/"$Adiarnfc" &&
|
AEligatu=`printf '\303\206'`
|
||||||
case "$(cd junk && echo *)" in
|
Invalidu=`printf '\303\377'`
|
||||||
"$Adiarnfd")
|
|
||||||
test_nfd=1
|
|
||||||
;;
|
|
||||||
*) ;;
|
|
||||||
esac
|
|
||||||
rm -rf junk
|
|
||||||
|
|
||||||
|
|
||||||
if test "$test_nfd"
|
#Create a string with 255 bytes (decomposed)
|
||||||
then
|
Alongd=$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd #21 Byte
|
||||||
# create more utf-8 variables
|
Alongd=$Alongd$Alongd$Alongd #63 Byte
|
||||||
Odiarnfc=`printf '\303\226'`
|
Alongd=$Alongd$Alongd$Alongd$Alongd$Adiarnfd #255 Byte
|
||||||
Odiarnfd=`printf 'O\314\210'`
|
|
||||||
AEligatu=`printf '\303\206'`
|
|
||||||
Invalidu=`printf '\303\377'`
|
|
||||||
|
|
||||||
|
#Create a string with 254 bytes (precomposed)
|
||||||
|
Alongc=$AEligatu$AEligatu$AEligatu$AEligatu$AEligatu #10 Byte
|
||||||
|
Alongc=$Alongc$Alongc$Alongc$Alongc$Alongc #50 Byte
|
||||||
|
Alongc=$Alongc$Alongc$Alongc$Alongc$Alongc #250 Byte
|
||||||
|
Alongc=$Alongc$AEligatu$AEligatu #254 Byte
|
||||||
|
|
||||||
#Create a string with 255 bytes (decomposed)
|
test_expect_success "detect if nfd needed" '
|
||||||
Alongd=$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd #21 Byte
|
|
||||||
Alongd=$Alongd$Alongd$Alongd #63 Byte
|
|
||||||
Alongd=$Alongd$Alongd$Alongd$Alongd$Adiarnfd #255 Byte
|
|
||||||
|
|
||||||
#Create a string with 254 bytes (precomposed)
|
|
||||||
Alongc=$AEligatu$AEligatu$AEligatu$AEligatu$AEligatu #10 Byte
|
|
||||||
Alongc=$Alongc$Alongc$Alongc$Alongc$Alongc #50 Byte
|
|
||||||
Alongc=$Alongc$Alongc$Alongc$Alongc$Alongc #250 Byte
|
|
||||||
Alongc=$Alongc$AEligatu$AEligatu #254 Byte
|
|
||||||
|
|
||||||
test_expect_success "detect if nfd needed" '
|
|
||||||
precomposeunicode=`git config core.precomposeunicode` &&
|
precomposeunicode=`git config core.precomposeunicode` &&
|
||||||
test "$precomposeunicode" = false &&
|
test "$precomposeunicode" = false &&
|
||||||
git config core.precomposeunicode true
|
git config core.precomposeunicode true
|
||||||
'
|
'
|
||||||
test_expect_success "setup" '
|
test_expect_success "setup" '
|
||||||
>x &&
|
>x &&
|
||||||
git add x &&
|
git add x &&
|
||||||
git commit -m "1st commit" &&
|
git commit -m "1st commit" &&
|
||||||
git rm x &&
|
git rm x &&
|
||||||
git commit -m "rm x"
|
git commit -m "rm x"
|
||||||
'
|
'
|
||||||
test_expect_success "setup case mac" '
|
test_expect_success "setup case mac" '
|
||||||
git checkout -b mac_os
|
git checkout -b mac_os
|
||||||
'
|
'
|
||||||
# This will test nfd2nfc in readdir()
|
# This will test nfd2nfc in readdir()
|
||||||
test_expect_success "add file Adiarnfc" '
|
test_expect_success "add file Adiarnfc" '
|
||||||
echo f.Adiarnfc >f.$Adiarnfc &&
|
echo f.Adiarnfc >f.$Adiarnfc &&
|
||||||
git add f.$Adiarnfc &&
|
git add f.$Adiarnfc &&
|
||||||
git commit -m "add f.$Adiarnfc"
|
git commit -m "add f.$Adiarnfc"
|
||||||
'
|
'
|
||||||
# This will test nfd2nfc in git stage()
|
# This will test nfd2nfc in git stage()
|
||||||
test_expect_success "stage file d.Adiarnfd/f.Adiarnfd" '
|
test_expect_success "stage file d.Adiarnfd/f.Adiarnfd" '
|
||||||
mkdir d.$Adiarnfd &&
|
mkdir d.$Adiarnfd &&
|
||||||
echo d.$Adiarnfd/f.$Adiarnfd >d.$Adiarnfd/f.$Adiarnfd &&
|
echo d.$Adiarnfd/f.$Adiarnfd >d.$Adiarnfd/f.$Adiarnfd &&
|
||||||
git stage d.$Adiarnfd/f.$Adiarnfd &&
|
git stage d.$Adiarnfd/f.$Adiarnfd &&
|
||||||
git commit -m "add d.$Adiarnfd/f.$Adiarnfd"
|
git commit -m "add d.$Adiarnfd/f.$Adiarnfd"
|
||||||
'
|
'
|
||||||
test_expect_success "add link Adiarnfc" '
|
test_expect_success "add link Adiarnfc" '
|
||||||
ln -s d.$Adiarnfd/f.$Adiarnfd l.$Adiarnfc &&
|
ln -s d.$Adiarnfd/f.$Adiarnfd l.$Adiarnfc &&
|
||||||
git add l.$Adiarnfc &&
|
git add l.$Adiarnfc &&
|
||||||
git commit -m "add l.Adiarnfc"
|
git commit -m "add l.Adiarnfc"
|
||||||
'
|
'
|
||||||
# This will test git log
|
# This will test git log
|
||||||
test_expect_success "git log f.Adiar" '
|
test_expect_success "git log f.Adiar" '
|
||||||
git log f.$Adiarnfc > f.Adiarnfc.log &&
|
git log f.$Adiarnfc > f.Adiarnfc.log &&
|
||||||
git log f.$Adiarnfd > f.Adiarnfd.log &&
|
git log f.$Adiarnfd > f.Adiarnfd.log &&
|
||||||
test -s f.Adiarnfc.log &&
|
test -s f.Adiarnfc.log &&
|
||||||
test -s f.Adiarnfd.log &&
|
test -s f.Adiarnfd.log &&
|
||||||
test_cmp f.Adiarnfc.log f.Adiarnfd.log &&
|
test_cmp f.Adiarnfc.log f.Adiarnfd.log &&
|
||||||
rm f.Adiarnfc.log f.Adiarnfd.log
|
rm f.Adiarnfc.log f.Adiarnfd.log
|
||||||
'
|
'
|
||||||
# This will test git ls-files
|
# This will test git ls-files
|
||||||
test_expect_success "git lsfiles f.Adiar" '
|
test_expect_success "git lsfiles f.Adiar" '
|
||||||
git ls-files f.$Adiarnfc > f.Adiarnfc.log &&
|
git ls-files f.$Adiarnfc > f.Adiarnfc.log &&
|
||||||
git ls-files f.$Adiarnfd > f.Adiarnfd.log &&
|
git ls-files f.$Adiarnfd > f.Adiarnfd.log &&
|
||||||
test -s f.Adiarnfc.log &&
|
test -s f.Adiarnfc.log &&
|
||||||
test -s f.Adiarnfd.log &&
|
test -s f.Adiarnfd.log &&
|
||||||
test_cmp f.Adiarnfc.log f.Adiarnfd.log &&
|
test_cmp f.Adiarnfc.log f.Adiarnfd.log &&
|
||||||
rm f.Adiarnfc.log f.Adiarnfd.log
|
rm f.Adiarnfc.log f.Adiarnfd.log
|
||||||
'
|
'
|
||||||
# This will test git mv
|
# This will test git mv
|
||||||
test_expect_success "git mv" '
|
test_expect_success "git mv" '
|
||||||
git mv f.$Adiarnfd f.$Odiarnfc &&
|
git mv f.$Adiarnfd f.$Odiarnfc &&
|
||||||
git mv d.$Adiarnfd d.$Odiarnfc &&
|
git mv d.$Adiarnfd d.$Odiarnfc &&
|
||||||
git mv l.$Adiarnfd l.$Odiarnfc &&
|
git mv l.$Adiarnfd l.$Odiarnfc &&
|
||||||
git commit -m "mv Adiarnfd Odiarnfc"
|
git commit -m "mv Adiarnfd Odiarnfc"
|
||||||
'
|
'
|
||||||
# Files can be checked out as nfc
|
# Files can be checked out as nfc
|
||||||
# And the link has been corrected from nfd to nfc
|
# And the link has been corrected from nfd to nfc
|
||||||
test_expect_success "git checkout nfc" '
|
test_expect_success "git checkout nfc" '
|
||||||
rm f.$Odiarnfc &&
|
rm f.$Odiarnfc &&
|
||||||
git checkout f.$Odiarnfc
|
git checkout f.$Odiarnfc
|
||||||
'
|
'
|
||||||
# Make it possible to checkout files with their NFD names
|
# Make it possible to checkout files with their NFD names
|
||||||
test_expect_success "git checkout file nfd" '
|
test_expect_success "git checkout file nfd" '
|
||||||
rm -f f.* &&
|
rm -f f.* &&
|
||||||
git checkout f.$Odiarnfd
|
git checkout f.$Odiarnfd
|
||||||
'
|
'
|
||||||
# Make it possible to checkout links with their NFD names
|
# Make it possible to checkout links with their NFD names
|
||||||
test_expect_success "git checkout link nfd" '
|
test_expect_success "git checkout link nfd" '
|
||||||
rm l.* &&
|
rm l.* &&
|
||||||
git checkout l.$Odiarnfd
|
git checkout l.$Odiarnfd
|
||||||
'
|
'
|
||||||
test_expect_success "setup case mac2" '
|
test_expect_success "setup case mac2" '
|
||||||
git checkout master &&
|
git checkout master &&
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
git checkout -b mac_os_2
|
git checkout -b mac_os_2
|
||||||
'
|
'
|
||||||
# This will test nfd2nfc in git commit
|
# This will test nfd2nfc in git commit
|
||||||
test_expect_success "commit file d2.Adiarnfd/f.Adiarnfd" '
|
test_expect_success "commit file d2.Adiarnfd/f.Adiarnfd" '
|
||||||
mkdir d2.$Adiarnfd &&
|
mkdir d2.$Adiarnfd &&
|
||||||
echo d2.$Adiarnfd/f.$Adiarnfd >d2.$Adiarnfd/f.$Adiarnfd &&
|
echo d2.$Adiarnfd/f.$Adiarnfd >d2.$Adiarnfd/f.$Adiarnfd &&
|
||||||
git add d2.$Adiarnfd/f.$Adiarnfd &&
|
git add d2.$Adiarnfd/f.$Adiarnfd &&
|
||||||
git commit -m "add d2.$Adiarnfd/f.$Adiarnfd" -- d2.$Adiarnfd/f.$Adiarnfd
|
git commit -m "add d2.$Adiarnfd/f.$Adiarnfd" -- d2.$Adiarnfd/f.$Adiarnfd
|
||||||
'
|
'
|
||||||
test_expect_success "setup for long decomposed filename" '
|
test_expect_success "setup for long decomposed filename" '
|
||||||
git checkout master &&
|
git checkout master &&
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
git checkout -b mac_os_long_nfd_fn
|
git checkout -b mac_os_long_nfd_fn
|
||||||
'
|
'
|
||||||
test_expect_success "Add long decomposed filename" '
|
test_expect_success "Add long decomposed filename" '
|
||||||
echo longd >$Alongd &&
|
echo longd >$Alongd &&
|
||||||
git add * &&
|
git add * &&
|
||||||
git commit -m "Long filename"
|
git commit -m "Long filename"
|
||||||
'
|
'
|
||||||
test_expect_success "setup for long precomposed filename" '
|
test_expect_success "setup for long precomposed filename" '
|
||||||
git checkout master &&
|
git checkout master &&
|
||||||
git reset --hard &&
|
git reset --hard &&
|
||||||
git checkout -b mac_os_long_nfc_fn
|
git checkout -b mac_os_long_nfc_fn
|
||||||
'
|
'
|
||||||
test_expect_success "Add long precomposed filename" '
|
test_expect_success "Add long precomposed filename" '
|
||||||
echo longc >$Alongc &&
|
echo longc >$Alongc &&
|
||||||
git add * &&
|
git add * &&
|
||||||
git commit -m "Long filename"
|
git commit -m "Long filename"
|
||||||
'
|
'
|
||||||
# Test if the global core.precomposeunicode stops autosensing
|
# Test if the global core.precomposeunicode stops autosensing
|
||||||
# Must be the last test case
|
# Must be the last test case
|
||||||
test_expect_success "respect git config --global core.precomposeunicode" '
|
test_expect_success "respect git config --global core.precomposeunicode" '
|
||||||
git config --global core.precomposeunicode true &&
|
git config --global core.precomposeunicode true &&
|
||||||
rm -rf .git &&
|
rm -rf .git &&
|
||||||
git init &&
|
git init &&
|
||||||
precomposeunicode=`git config core.precomposeunicode` &&
|
precomposeunicode=`git config core.precomposeunicode` &&
|
||||||
test "$precomposeunicode" = "true"
|
test "$precomposeunicode" = "true"
|
||||||
'
|
'
|
||||||
else
|
|
||||||
say "Skipping nfc/nfd tests"
|
|
||||||
fi
|
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -221,9 +221,35 @@ write_script () {
|
|||||||
# capital letters by convention).
|
# capital letters by convention).
|
||||||
|
|
||||||
test_set_prereq () {
|
test_set_prereq () {
|
||||||
satisfied="$satisfied$1 "
|
satisfied_prereq="$satisfied_prereq$1 "
|
||||||
|
}
|
||||||
|
satisfied_prereq=" "
|
||||||
|
lazily_testable_prereq= lazily_tested_prereq=
|
||||||
|
|
||||||
|
# Usage: test_lazy_prereq PREREQ 'script'
|
||||||
|
test_lazy_prereq () {
|
||||||
|
lazily_testable_prereq="$lazily_testable_prereq$1 "
|
||||||
|
eval test_prereq_lazily_$1=\$2
|
||||||
|
}
|
||||||
|
|
||||||
|
test_run_lazy_prereq_ () {
|
||||||
|
script='
|
||||||
|
mkdir -p "$TRASH_DIRECTORY/prereq-test-dir" &&
|
||||||
|
(
|
||||||
|
cd "$TRASH_DIRECTORY/prereq-test-dir" &&'"$2"'
|
||||||
|
)'
|
||||||
|
say >&3 "checking prerequisite: $1"
|
||||||
|
say >&3 "$script"
|
||||||
|
test_eval_ "$script"
|
||||||
|
eval_ret=$?
|
||||||
|
rm -rf "$TRASH_DIRECTORY/prereq-test-dir"
|
||||||
|
if test "$eval_ret" = 0; then
|
||||||
|
say >&3 "prerequisite $1 ok"
|
||||||
|
else
|
||||||
|
say >&3 "prerequisite $1 not satisfied"
|
||||||
|
fi
|
||||||
|
return $eval_ret
|
||||||
}
|
}
|
||||||
satisfied=" "
|
|
||||||
|
|
||||||
test_have_prereq () {
|
test_have_prereq () {
|
||||||
# prerequisites can be concatenated with ','
|
# prerequisites can be concatenated with ','
|
||||||
@ -238,8 +264,24 @@ test_have_prereq () {
|
|||||||
|
|
||||||
for prerequisite
|
for prerequisite
|
||||||
do
|
do
|
||||||
|
case " $lazily_tested_prereq " in
|
||||||
|
*" $prerequisite "*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
case " $lazily_testable_prereq " in
|
||||||
|
*" $prerequisite "*)
|
||||||
|
eval "script=\$test_prereq_lazily_$prerequisite" &&
|
||||||
|
if test_run_lazy_prereq_ "$prerequisite" "$script"
|
||||||
|
then
|
||||||
|
test_set_prereq $prerequisite
|
||||||
|
fi
|
||||||
|
lazily_tested_prereq="$lazily_tested_prereq$prerequisite "
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
total_prereq=$(($total_prereq + 1))
|
total_prereq=$(($total_prereq + 1))
|
||||||
case $satisfied in
|
case "$satisfied_prereq" in
|
||||||
*" $prerequisite "*)
|
*" $prerequisite "*)
|
||||||
ok_prereq=$(($ok_prereq + 1))
|
ok_prereq=$(($ok_prereq + 1))
|
||||||
;;
|
;;
|
||||||
|
@ -659,9 +659,29 @@ test_i18ngrep () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# test whether the filesystem supports symbolic links
|
test_lazy_prereq SYMLINKS '
|
||||||
ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS
|
# test whether the filesystem supports symbolic links
|
||||||
rm -f y
|
ln -s x y && test -h y
|
||||||
|
'
|
||||||
|
|
||||||
|
test_lazy_prereq CASE_INSENSITIVE_FS '
|
||||||
|
echo good >CamelCase &&
|
||||||
|
echo bad >camelcase &&
|
||||||
|
test "$(cat CamelCase)" != good
|
||||||
|
'
|
||||||
|
|
||||||
|
test_lazy_prereq UTF8_NFD_TO_NFC '
|
||||||
|
# check whether FS converts nfd unicode to nfc
|
||||||
|
auml=$(printf "\303\244")
|
||||||
|
aumlcdiar=$(printf "\141\314\210")
|
||||||
|
>"$auml" &&
|
||||||
|
case "$(echo *)" in
|
||||||
|
"$aumlcdiar")
|
||||||
|
true ;;
|
||||||
|
*)
|
||||||
|
false ;;
|
||||||
|
esac
|
||||||
|
'
|
||||||
|
|
||||||
# When the tests are run as root, permission tests will report that
|
# When the tests are run as root, permission tests will report that
|
||||||
# things are writable when they shouldn't be.
|
# things are writable when they shouldn't be.
|
||||||
|
Loading…
Reference in New Issue
Block a user