6528 need casesensitivity/normalization test cases for zfs-tests
[unleashed.git] / usr / src / test / zfs-tests / tests / functional / casenorm / casenorm.kshlib
blobff1206fdb6da09d2312cbedde48e8b2e51ef957d
2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
7 # A full copy of the text of the CDDL should have accompanied this
8 # source.  A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
13 # Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
16 . $STF_SUITE/include/libtest.shlib
17 . $STF_SUITE/tests/functional/casenorm/casenorm.cfg
19 function create_testfs
21         typeset opts=$1
23         $RM -rf $TESTDIR || log_unresolved Could not remove $TESTDIR
24         $MKDIR -p $TESTDIR || log_unresolved Could not create $TESTDIR
26         log_must $ZFS create $opts $TESTPOOL/$TESTFS
27         log_must $ZFS set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
30 function destroy_testfs
32         if datasetexists $TESTPOOL/$TESTFS ; then
33                 log_must $ZFS destroy -f $TESTPOOL/$TESTFS
34                 $RM -rf $TESTDIR || log_unresolved Could not remove $TESTDIR
35         fi
38 function create_file
40         typeset name=$TESTDIR/$1
42         $ECHO $name > $name
45 function delete_file
47         typeset name=$TESTDIR/$1
49         $RM $name >/dev/null 2>&1
51         if [[ $? -ne 0 ]] ; then
52                 return 1
53         fi
55         if [[ -f $name ]] ; then
56                 return 2
57         fi
60 function lookup_file
62         typeset name=$1
64         $ZLOOK -l $TESTDIR $name >/dev/null 2>&1
67 function lookup_file_ci
69         typeset name=$1
71         $ZLOOK -il $TESTDIR $name >/dev/null 2>&1
74 function lookup_any
76         for name in $NAMES_ALL ; do
77                 lookup_file $name
78                 if [[ $? -eq 0 ]] ; then
79                         return 0
80                 fi
81         done
83         return 1
86 function switch_norm
88         typeset norm=$(get_norm $1)
90         if [[ $norm == "C" ]] ; then
91                 print "D"
92         else
93                 print "C"
94         fi
97 function get_norm
99         if [[ "${NAMES_C#*$1}" != "${NAMES_C}" ]] ; then
100                 print "C"
101         elif [[ "${NAMES_D#*$1}" != "${NAMES_D}" ]] ; then
102                 print "D"
103         else
104                 return 1
105         fi
108 function get_case
110         if [[ ${NAMES_UPPER#*$1} != ${NAMES_UPPER} ]] ; then
111                 print "UPPER"
112         elif [[ ${NAMES_LOWER#*$1} != ${NAMES_LOWER} ]] ; then
113                 print "LOWER"
114         elif [[ ${NAMES_ORIG#*$1} != ${NAMES_ORIG} ]] ; then
115                 print "ORIG"
116         else
117                 return 1
118         fi