aboutsummaryrefslogtreecommitdiff
path: root/tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib')
-rw-r--r--tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib131
1 files changed, 131 insertions, 0 deletions
diff --git a/tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib b/tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib
new file mode 100644
index 000000000000..cb61798d7be7
--- /dev/null
+++ b/tests/zfs-tests/tests/functional/casenorm/casenorm.kshlib
@@ -0,0 +1,131 @@
+#
+# This file and its contents are supplied under the terms of the
+# Common Development and Distribution License ("CDDL"), version 1.0.
+# You may only use this file in accordance with the terms of version
+# 1.0 of the CDDL.
+#
+# A full copy of the text of the CDDL should have accompanied this
+# source. A copy of the CDDL is also available via the Internet at
+# http://www.illumos.org/license/CDDL.
+#
+
+#
+# Copyright 2015 Nexenta Systems, Inc. All rights reserved.
+#
+
+#
+# Copyright (c) 2016 by Delphix. All rights reserved.
+#
+
+. $STF_SUITE/include/libtest.shlib
+. $STF_SUITE/tests/functional/casenorm/casenorm.cfg
+
+function create_testfs
+{
+ typeset opts=$1
+
+ rm -rf $TESTDIR || log_unresolved Could not remove $TESTDIR
+ mkdir -p $TESTDIR || log_unresolved Could not create $TESTDIR
+
+ log_must zfs create $opts $TESTPOOL/$TESTFS
+ log_must zfs set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
+}
+
+function destroy_testfs
+{
+ if datasetexists $TESTPOOL/$TESTFS ; then
+ log_must zfs destroy -f $TESTPOOL/$TESTFS
+ rm -rf $TESTDIR || log_unresolved Could not remove $TESTDIR
+ fi
+}
+
+function create_file
+{
+ typeset name=$TESTDIR/$1
+
+ echo $name > $name
+}
+
+function delete_file
+{
+ typeset name=$TESTDIR/$1
+
+ rm $name >/dev/null 2>&1
+
+ if [[ $? -ne 0 ]] ; then
+ return 1
+ fi
+
+ if [[ -f $name ]] ; then
+ return 2
+ fi
+}
+
+function lookup_file
+{
+ typeset name=$1
+
+ if is_illumos; then
+ zlook -l $TESTDIR $name >/dev/null 2>&1
+ else
+ test -f "${TESTDIR}/${name}" >/dev/null 2>&1
+ fi
+}
+
+function lookup_file_ci
+{
+ typeset name=$1
+
+ if is_illumos; then
+ zlook -il $TESTDIR $name >/dev/null 2>&1
+ else
+ test -f "${TESTDIR}/${name}" >/dev/null 2>&1
+ fi
+}
+
+function lookup_any
+{
+ for name in $NAMES_ALL ; do
+ lookup_file $name
+ if [[ $? -eq 0 ]] ; then
+ return 0
+ fi
+ done
+
+ return 1
+}
+
+function switch_norm
+{
+ typeset norm=$(get_norm $1)
+
+ if [[ $norm == "C" ]] ; then
+ print "D"
+ else
+ print "C"
+ fi
+}
+
+function get_norm
+{
+ if [[ "${NAMES_C#*$1}" != "${NAMES_C}" ]] ; then
+ print "C"
+ elif [[ "${NAMES_D#*$1}" != "${NAMES_D}" ]] ; then
+ print "D"
+ else
+ return 1
+ fi
+}
+
+function get_case
+{
+ if [[ ${NAMES_UPPER#*$1} != ${NAMES_UPPER} ]] ; then
+ print "UPPER"
+ elif [[ ${NAMES_LOWER#*$1} != ${NAMES_LOWER} ]] ; then
+ print "LOWER"
+ elif [[ ${NAMES_ORIG#*$1} != ${NAMES_ORIG} ]] ; then
+ print "ORIG"
+ else
+ return 1
+ fi
+}