diff options
author | George Melikov <[email protected]> | 2019-11-20 03:23:27 +0300 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2019-11-19 16:23:27 -0800 |
commit | 540312df7f3f8e10e3049e4b3ec667d57fa9b90e (patch) | |
tree | 4f1f6c1be883d2f48fa892311d7b3bc0c07ff0d7 | |
parent | 8221bcf1e4efc40d92d1354de710048c70eb709b (diff) |
ZTS: Casenorm fix unicode interpretation
Use `printf` to properly interpret unicode characters.
Illumos uses a utility called `zlook` to allow additional flags to be
provided to readdir and lookup for testing. This functionality could
be ported to Linux, but even without it several of the tests can be
enabled by instead using the standard `test` command.
Additional, work is required to enable the remaining test cases.
Reviewed-by: Igor Kozhukhov <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: George Melikov <[email protected]>
Issue #7633
Closes #8812
-rwxr-xr-x | tests/test-runner/bin/zts-report.py | 8 | ||||
-rw-r--r-- | tests/zfs-tests/tests/functional/casenorm/casenorm.cfg | 16 | ||||
-rw-r--r-- | tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib | 12 |
3 files changed, 20 insertions, 16 deletions
diff --git a/tests/test-runner/bin/zts-report.py b/tests/test-runner/bin/zts-report.py index 4c3c29384..0e78c3547 100755 --- a/tests/test-runner/bin/zts-report.py +++ b/tests/test-runner/bin/zts-report.py @@ -160,17 +160,9 @@ summary = { # reasons listed above can be used. # known = { - 'casenorm/sensitive_none_lookup': ['FAIL', '7633'], - 'casenorm/sensitive_none_delete': ['FAIL', '7633'], 'casenorm/sensitive_formd_lookup': ['FAIL', '7633'], 'casenorm/sensitive_formd_delete': ['FAIL', '7633'], - 'casenorm/insensitive_none_lookup': ['FAIL', '7633'], - 'casenorm/insensitive_none_delete': ['FAIL', '7633'], - 'casenorm/insensitive_formd_lookup': ['FAIL', '7633'], - 'casenorm/insensitive_formd_delete': ['FAIL', '7633'], - 'casenorm/mixed_none_lookup': ['FAIL', '7633'], 'casenorm/mixed_none_lookup_ci': ['FAIL', '7633'], - 'casenorm/mixed_none_delete': ['FAIL', '7633'], 'casenorm/mixed_formd_lookup': ['FAIL', '7633'], 'casenorm/mixed_formd_lookup_ci': ['FAIL', '7633'], 'casenorm/mixed_formd_delete': ['FAIL', '7633'], diff --git a/tests/zfs-tests/tests/functional/casenorm/casenorm.cfg b/tests/zfs-tests/tests/functional/casenorm/casenorm.cfg index 9e8e45686..5d2efbf00 100644 --- a/tests/zfs-tests/tests/functional/casenorm/casenorm.cfg +++ b/tests/zfs-tests/tests/functional/casenorm/casenorm.cfg @@ -17,12 +17,16 @@ # Copyright (c) 2016 by Delphix. All rights reserved. # -NAME_C_ORIG=$(echo 'F\0303\0257L\0303\0253N\0303\0204m\0303\0253') -NAME_C_UPPER=$(echo 'F\0303\0217L\0303\0213N\0303\0204M\0303\0213') -NAME_C_LOWER=$(echo 'f\0303\0257l\0303\0253n\0303\0244m\0303\0253') -NAME_D_ORIG=$(echo 'Fi\0314\0210Le\0314\0210NA\0314\0210me\0314\0210') -NAME_D_UPPER=$(echo 'FI\0314\0210LE\0314\0210NA\0314\0210ME\0314\0210') -NAME_D_LOWER=$(echo 'fi\0314\0210le\0314\0210na\0314\0210me\0314\0210') +# Ksh on linux may have locale env variables undefined +export LANG="C.UTF-8" +export LC_ALL="C.UTF-8" + +NAME_C_ORIG=$(printf '\u0046\u00ef\u004c\u00eb\u004e\u00c4\u006d\u00eb') +NAME_C_UPPER=$(printf '\u0046\u00cf\u004c\u00cb\u004e\u00c4\u004d\u00cb') +NAME_C_LOWER=$(printf '\u0066\u00ef\u006c\u00eb\u006e\u00e4\u006d\u00eb') +NAME_D_ORIG=$(printf '\u0046\u0069\u0308\u004c\u0065\u0308\u004e\u0041\u0308\u006d\u0065\u0308') +NAME_D_UPPER=$(printf '\u0046\u0049\u0308\u004c\u0045\u0308\u004e\u0041\u0308\u004d\u0045\u0308') +NAME_D_LOWER=$(printf '\u0066\u0069\u0308\u006c\u0065\u0308\u006e\u0061\u0308\u006d\u0065\u0308') NAMES_ORIG="$NAME_C_ORIG $NAME_D_ORIG" NAMES_UPPER="$NAME_C_UPPER $NAME_D_UPPER" NAMES_LOWER="$NAME_C_LOWER $NAME_D_LOWER" diff --git a/tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib b/tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib index 273522406..5b080165b 100644 --- a/tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib +++ b/tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib @@ -65,14 +65,22 @@ function lookup_file { typeset name=$1 - zlook -l $TESTDIR $name >/dev/null 2>&1 + if is_linux; then + test -f "${TESTDIR}/${name}" >/dev/null 2>&1 + else + zlook -l $TESTDIR $name >/dev/null 2>&1 + fi } function lookup_file_ci { typeset name=$1 - zlook -il $TESTDIR $name >/dev/null 2>&1 + if is_linux; then + test -f "${TESTDIR}/${name}" >/dev/null 2>&1 + else + zlook -il $TESTDIR $name >/dev/null 2>&1 + fi } function lookup_any |