5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
24 # Copyright 2009 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
28 .
$STF_SUITE/tests
/functional
/cli_root
/zfs_get
/zfs_get_common.kshlib
32 # Setting the invalid option and properties, 'zfs get' should failed.
35 # 1. Create pool, filesystem, volume and snapshot.
36 # 2. Getting incorrect combination by invalid parameters
37 # 3. Using the combination as the parameters of 'zfs get' to check the
38 # command line return value.
41 verify_runnable
"both"
43 typeset val_opts
=(p r H
)
44 typeset v_props
=(type used available creation volsize referenced compressratio \
45 mounted origin recordsize quota reservation mountpoint sharenfs checksum \
46 compression atime devices
exec readonly setuid zoned snapdir acltype \
47 aclinherit canmount primarycache secondarycache \
48 usedbychildren usedbydataset usedbyrefreservation usedbysnapshots version
)
50 typeset userquota_props
=(userquota@root groupquota@root userused@root \
52 typeset val_pros
=(-- "${v_props[@]}" "${userquota_props[@]}")
53 set -f # Force shell does not parse '?' and '*' as the wildcard
54 typeset inval_opts
=(P R h ?
*)
55 typeset inval_props
=(Type
0 ?
* -on --on readonl
time USED RATIO MOUNTED
)
57 typeset dataset
=($TESTPOOL/$TESTFS $TESTPOOL/$TESTCTR $TESTPOOL/$TESTVOL \
58 $TESTPOOL/$TESTFS@
$TESTSNAP $TESTPOOL/$TESTVOL@
$TESTSNAP)
61 typeset
-i prop_numb
=12
63 val_opts_str
=$
(gen_option_str
"${val_opts[*]}" "-" "" $opt_numb)
64 val_props_str
=$
(gen_option_str
"${val_props[*]}" "" "," $prop_numb)
65 val_props_str
="$val_props_str -a -d"
67 inval_opts_str
=$
(gen_option_str
"${inval_opts[*]}" "-" "" $opt_numb)
68 inval_props_str
=$
(gen_option_str
"${inval_props[*]}" "" "," $prop_numb)
71 # Test different options and properties combination.
81 for dst
in ${dataset[@]}; do
83 for prop
in $props; do
84 $ZFS get
$opt $prop $dst > /dev
/null
2>&1
86 if [[ $ret == 0 ]]; then
87 log_fail
"$ZFS get $opt $prop $dst " \
88 "unexpectedly succeeded."
95 log_assert
"Setting the invalid option and properties, 'zfs get' should be \
99 # Create filesystem and volume's snapshot
100 create_snapshot
$TESTPOOL/$TESTFS $TESTSNAP
101 create_snapshot
$TESTPOOL/$TESTVOL $TESTSNAP
103 log_note
"Valid options + invalid properties, 'zfs get' should fail."
104 test_options
"$val_opts_str" "$inval_props_str"
106 log_note
"Invalid options + valid properties, 'zfs get' should fail."
107 test_options
"$inval_opts_str" "$val_props_str"
109 log_note
"Invalid options + invalid properties, 'zfs get' should fail."
110 test_options
"$inval_opts_str" "$inval_props_str"
112 log_pass
"Setting the invalid options to dataset, 'zfs get' pass."