d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#!/bin/ksh -p
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# CDDL HEADER START
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# The contents of this file are subject to the terms of the
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# Common Development and Distribution License (the "License").
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# You may not use this file except in compliance with the License.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# or http://www.opensolaris.org/os/licensing.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# See the License for the specific language governing permissions
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# and limitations under the License.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# When distributing Covered Code, include this CDDL HEADER in each
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# If applicable, add the following below this CDDL HEADER, with the
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# fields enclosed by brackets "[]" replaced with your own identifying
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# information: Portions Copyright [yyyy] [name of copyright owner]
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# CDDL HEADER END
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# Use is subject to license terms.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy#
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy# Copyright (c) 2016 by Delphix. All rights reserved.
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy#
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy. $STF_SUITE/tests/functional/cli_root/zfs_get/zfs_get_common.kshlib
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy. $STF_SUITE/tests/functional/cli_root/zfs_get/zfs_get_list_d.kshlib
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# DESCRIPTION:
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# 'zfs get -d <n>' should get expected output.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# STRATEGY:
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# 1. Create a multiple depth filesystem.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# 2. 'zfs get -d <n>' to get the output.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# 3. 'zfs get -r|egrep' to get the expected output.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy# 4. Compare the two outputs, they shoud be same.
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy#
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyverify_runnable "both"
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedylog_assert "'zfs get -d <n>' should get expected output."
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedylog_onexit depth_fs_cleanup
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyset -A all_props type used available creation volsize referenced \
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy compressratio mounted origin recordsize quota reservation mountpoint \
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy sharenfs checksum compression atime devices exec readonly setuid \
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy zoned snapdir aclmode aclinherit canmount primarycache secondarycache \
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy usedbychildren usedbydataset usedbyrefreservation usedbysnapshots \
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy userquota@root groupquota@root userused@root groupused@root
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedyzfs upgrade -v > /dev/null 2>&1
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyif [[ $? -eq 0 ]]; then
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy set -A all_props ${all_props[*]} version
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyfi
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedydepth_fs_setup
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedymntpnt=$(get_prop mountpoint $DEPTH_FS)
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyDEPTH_OUTPUT="$mntpnt/depth_output"
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren KennedyEXPECT_OUTPUT="$mntpnt/expect_output"
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedytypeset -i prop_numb=16
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedytypeset -i old_val=0
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedytypeset -i j=0
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedytypeset eg_opt="$DEPTH_FS"$
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedyfor dp in ${depth_array[@]}; do
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy (( j=old_val+1 ))
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy while (( j<=dp && j<=MAX_DEPTH )); do
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy eg_opt="$eg_opt""|depth""$j"$
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy (( j+=1 ))
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy done
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy for prop in $(gen_option_str "${all_props[*]}" "" "," $prop_numb); do
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy log_must eval "zfs get -H -d $dp -o name $prop $DEPTH_FS > $DEPTH_OUTPUT"
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy log_must eval "zfs get -rH -o name $prop $DEPTH_FS | egrep -e '$eg_opt' > $EXPECT_OUTPUT"
1d32ba663e202c24a5a1f2e5aef83fffb447cb7fJohn Wren Kennedy log_must diff $DEPTH_OUTPUT $EXPECT_OUTPUT
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy done
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy (( old_val=dp ))
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedydone
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedylog_pass "'zfs get -d <n>' should get expected output."
d583b39bfb4e2571d3e41097c5c357ffe353ad45John Wren Kennedy