blob: cb61798d7be7fc2831a65c809757701fc856fe53 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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
}
|