summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--t/README5
-rwxr-xr-xt/t0050-filesystem.sh24
-rw-r--r--t/test-lib.sh13
3 files changed, 25 insertions, 17 deletions
diff --git a/t/README b/t/README
index 5725607448..e4128e5769 100644
--- a/t/README
+++ b/t/README
@@ -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
----------------------
diff --git a/t/t0050-filesystem.sh b/t/t0050-filesystem.sh
index b46ae72eac..78816d9d93 100755
--- a/t/t0050-filesystem.sh
+++ b/t/t0050-filesystem.sh
@@ -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"
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 81cf4dfb04..78c428619e 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -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