]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tests/zfs-tests/tests/functional/cli_root/zfs_get/zfs_get_list_d.kshlib
Vendor import of openzfs master @ 184df27eef0abdc7ab2105b21257f753834b936b
[FreeBSD/FreeBSD.git] / tests / zfs-tests / tests / functional / cli_root / zfs_get / zfs_get_list_d.kshlib
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 DEPTH_FS=$TESTPOOL/depth_fs
34 MAX_DEPTH=3
35 DS_COUNT=3
36 set -A depth_options  "d 0" "d 1" "d 2" "d 4" "d 32"
37 set -A depth_array  0 1 2 4 32
38
39 #
40 # Setup multiple depths datasets, including fs, volumes, snapshots and bookmarks.
41 #
42 function depth_fs_setup
43 {
44         typeset -i i j k
45         typeset fslist
46
47         log_must zfs create $DEPTH_FS
48
49         (( i=1 ))
50         while (( i<=MAX_DEPTH )); do
51                 if (( i==1 )); then
52                         fslist=$DEPTH_FS
53                 else
54                         (( k=i-1 ))
55                         fslist=$(zfs list -rH -t filesystem -o name $DEPTH_FS|grep depth"$k"$)
56                         if (( $? != 0 )); then
57                                 log_fail "No depth$k filesystem"
58                         fi
59                 fi
60                 for fs in $fslist; do
61                         (( j=1 ))
62                         while (( j<=DS_COUNT )); do
63                                 log_must zfs create $fs/fs_"$j"_depth"$i"
64                                 if is_global_zone ; then
65                                         log_must zfs create -V 8M $fs/vol_"$j"_depth"$i"
66                                 fi
67                                 log_must zfs snapshot $fs@snap_"$j"_depth"$i"
68                                 log_must zfs bookmark $fs@snap_"$j"_depth"$i" '#bookmark'_"$j"_depth"$i"
69                                 (( j=j+1 ))
70                         done
71                 done
72                 (( i=i+1 ))
73         done
74 }
75
76 #
77 # Cleanup multiple depths filesystem.
78 #
79 function depth_fs_cleanup
80 {
81         log_must zfs destroy -rR $DEPTH_FS
82 }
83
84