Permalink
Browse files

test-lib: provide UTF8 behaviour as a prerequisite

UTF8 behaviour of the filesystem (conversion from nfd to nfc)  plays a
role in several tests and is tested in several tests. Therefore, move
the test from t0050 into the test lib and use the prerequisite in t0050.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information...
1 parent 2b71b52 commit 5b0b5dd49b55e474a2df502902682853e2cd6e9d @mjg mjg committed with gitster Jul 26, 2012
Showing with 25 additions and 17 deletions.
  1. +5 −0 t/README
  2. +7 −17 t/t0050-filesystem.sh
  3. +13 −0 t/test-lib.sh
View
@@ -629,6 +629,11 @@ use these, and "test_set_prereq" for how to define your own.
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
----------------------
View
@@ -7,22 +7,6 @@ test_description='Various filesystem issues'
auml=$(printf '\303\244')
aumlcdiar=$(printf '\141\314\210')
-unibad=
-test_expect_success 'see what we expect' '
-
- test_unicode=test_expect_success &&
- mkdir junk &&
- >junk/"$auml" &&
- case "$(cd junk && echo *)" in
- "$aumlcdiar")
- test_unicode=test_expect_failure &&
- unibad=t
- ;;
- *) ;;
- esac &&
- rm -fr junk
-'
-
if test_have_prereq CASE_INSENSITIVE_FS
then
say "will test on a case insensitive filesystem"
@@ -31,8 +15,14 @@ else
test_case=test_expect_success
fi
-test "$unibad" &&
+if test_have_prereq UTF8_NFD_TO_NFC
+then
say "will test on a unicode corrupting filesystem"
+ 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"
View
@@ -670,6 +670,19 @@ test_lazy_prereq CASE_INSENSITIVE_FS '
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
# things are writable when they shouldn't be.
test -w / || test_set_prereq SANITY

0 comments on commit 5b0b5dd

Please sign in to comment.