1 #
   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.
   6 #
   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.
  10 #
  11 
  12 #
  13 # Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  14 #
  15 
  16 . $STF_SUITE/include/libtest.shlib
  17 . $STF_SUITE/tests/functional/casenorm/casenorm.cfg
  18 
  19 function create_testfs
  20 {
  21         typeset opts=$1
  22 
  23         $RM -rf $TESTDIR || log_unresolved Could not remove $TESTDIR
  24         $MKDIR -p $TESTDIR || log_unresolved Could not create $TESTDIR
  25 
  26         log_must $ZFS create $opts $TESTPOOL/$TESTFS
  27         log_must $ZFS set mountpoint=$TESTDIR $TESTPOOL/$TESTFS
  28 }
  29 
  30 function destroy_testfs
  31 {
  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
  36 }
  37 
  38 function create_file
  39 {
  40         typeset name=$TESTDIR/$1
  41 
  42         $ECHO $name > $name
  43 }
  44 
  45 function delete_file
  46 {
  47         typeset name=$TESTDIR/$1
  48 
  49         $RM $name >/dev/null 2>&1
  50 
  51         if [[ $? -ne 0 ]] ; then
  52                 return 1
  53         fi
  54 
  55         if [[ -f $name ]] ; then
  56                 return 2
  57         fi
  58 }
  59 
  60 function lookup_file
  61 {
  62         typeset name=$1
  63 
  64         $ZLOOK -l $TESTDIR $name >/dev/null 2>&1
  65 }
  66 
  67 function lookup_file_ci
  68 {
  69         typeset name=$1
  70 
  71         $ZLOOK -il $TESTDIR $name >/dev/null 2>&1
  72 }
  73 
  74 function lookup_any
  75 {
  76         for name in $NAMES_ALL ; do
  77                 lookup_file $name
  78                 if [[ $? -eq 0 ]] ; then
  79                         return 0
  80                 fi
  81         done
  82 
  83         return 1
  84 }
  85 
  86 function switch_norm
  87 {
  88         typeset norm=$(get_norm $1)
  89 
  90         if [[ $norm == "C" ]] ; then
  91                 print "D"
  92         else
  93                 print "C"
  94         fi
  95 }
  96 
  97 function get_norm
  98 {
  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
 106 }
 107 
 108 function get_case
 109 {
 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
 119 }