| # |
| # 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_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 |
| |
| 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 |
| { |
| 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 |
| } |