1 #
2 # CDDL HEADER START
3 #
4 # The contents of this file are subject to the terms of the
5 # Common Development and Distribution License (the "License").
6 # You may not use this file except in compliance with the License.
7 #
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 # or http://www.opensolaris.org/os/licensing.
10 # See the License for the specific language governing permissions
11 # and limitations under the License.
12 #
13 # When distributing Covered Code, include this CDDL HEADER in each
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 # If applicable, add the following below this CDDL HEADER, with the
16 # fields enclosed by brackets "[]" replaced with your own identifying
17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 #
19 # CDDL HEADER END
20 #
21
22 #
23 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
25 #
26
27 #
28 # Copyright (c) 2016 by Delphix. All rights reserved.
29 #
30
31 . $STF_SUITE/include/libtest.shlib
32
33 #
34 # Create a file or direcotry
35 #
36 # $1: The type specified, "file" or "dir"
37 # $2: The given node name
38 # $3: Owner of the node
39 #
40 function create_object
41 {
42 typeset type=$1
43 typeset object=$2
44 typeset owner=$3
45
46 destroy_object $object
47
48 case $type in
49 dir)
50 mkdir -p $object
51 ;;
52 file)
53 echo "ZFS test suites" > $object
54 ;;
55 esac
56
57 if [[ -n $owner ]]; then
58 chown $owner $object
59 fi
60 return 0
61 }
62
63 #
64 # Destroy the given node(s)
65 #
66 # $@: The node(s) need to be destroyed
67 #
68 function destroy_object
69 {
70 for object in $@ ; do
71 if [[ -e $object ]]; then
72
73 # clear_attribute is a common function name,
74 # but each case should have their own implement.
75 log_must clear_attribute $object
76 log_must rm -rf $object
77 fi
78 done
79 return 0
80 }