Mercurial > illumos > illumos-gate
annotate usr/src/test/zfs-tests/tests/functional/cli_root/zfs_set/zfs_set_common.kshlib @ 13899:0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
3312 Add a testrunner package for OS unit tests
3313 Add a testrunner package to convert ZFS tests from STF
Reviewed by: Matt Ahrens <matthew.ahrens@delphix.com>
Reviewed by: Will Guyette <will.guyette@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Henrik Mattson <henrik.mattson@delphix.com>
Reviewed by: Sonu Pillai <sonu.pillai@delphix.com>
Reviewed by: Christopher Siden <chris.siden@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Approved by: Richard Lowe <richlowe@richlowe.net>
author | John Wren Kennedy <john.kennedy@delphix.com> |
---|---|
date | Wed, 05 Dec 2012 22:04:50 -0500 |
parents | |
children |
rev | line source |
---|---|
13899
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
1 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
2 # CDDL HEADER START |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
3 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
4 # The contents of this file are subject to the terms of the |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
5 # Common Development and Distribution License (the "License"). |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
6 # You may not use this file except in compliance with the License. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
7 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
9 # or http://www.opensolaris.org/os/licensing. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
10 # See the License for the specific language governing permissions |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
11 # and limitations under the License. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
12 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
13 # When distributing Covered Code, include this CDDL HEADER in each |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
15 # If applicable, add the following below this CDDL HEADER, with the |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
16 # fields enclosed by brackets "[]" replaced with your own identifying |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
17 # information: Portions Copyright [yyyy] [name of copyright owner] |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
18 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
19 # CDDL HEADER END |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
20 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
21 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
22 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
23 # Copyright 2009 Sun Microsystems, Inc. All rights reserved. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
24 # Use is subject to license terms. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
25 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
26 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
27 . $STF_SUITE/include/libtest.shlib |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
28 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
29 set -A VALID_NAME_CHAR a b c d e f g h i j k l m n o p q r s t u v w x y z \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
30 0 1 2 3 4 5 6 7 8 9 ':' '-' '.' '_' |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
31 set -A INVALID_NAME_CHAR A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
32 '`' '~' '!' '@' '#' '$' '%' '^' '&' '(' ')' '+' '=' '|' "\\" '{' '[' ']' \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
33 '}' ';' '"' '<' ',' '>' '?' '/' ' ' |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
34 set -A ALL_CHAR ${VALID_NAME_CHAR[*]} ${INVALID_NAME_CHAR[*]} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
35 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
36 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
37 # Firstly, set the property value to dataset. Then checking if the property |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
38 # value is equal with the expected value, according to the expected result. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
39 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
40 # $1 property value |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
41 # $2 property name |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
42 # $3 dataset |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
43 # $4 expected result |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
44 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
45 function set_n_check_prop |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
46 { |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
47 typeset expect_value=$1 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
48 typeset prop=$2 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
49 typeset dataset=$3 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
50 typeset expect_result=${4:-true} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
51 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
52 typeset old_value="" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
53 typeset cur_value="" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
54 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
55 [[ -n $prop ]] && old_value=$(get_prop $prop $dataset) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
56 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
57 if [[ $expect_result == true ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
58 [[ -z $prop || -z $dataset ]] && \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
59 log_fail "property or dataset isn't defined." |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
60 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
61 log_must $ZFS set $prop=$expect_value $dataset |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
62 if [[ $expect_value == "gzip-6" ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
63 expect_value="gzip" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
64 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
65 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
66 [[ -n $prop ]] && cur_value=$(get_prop $prop $dataset) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
67 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
68 case $prop in |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
69 reservation|reserv|quota ) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
70 if [[ $expect_value == "none" ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
71 [[ $cur_value != "0" ]] && \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
72 log_fail "The '$dataset' '$prop' value \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
73 '$cur_value' is not expected." |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
74 elif [[ $cur_value != $expect_value ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
75 log_fail "The '$dataset' '$prop' value '$cur_value' \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
76 does not equal the expected value '$expect_value'." |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
77 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
78 ;; |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
79 * ) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
80 if [[ $cur_value != $expect_value ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
81 log_fail "The '$dataset' '$prop' value '$cur_value' \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
82 does not equal the expected value '$expect_value'." |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
83 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
84 ;; |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
85 esac |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
86 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
87 else |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
88 log_mustnot $ZFS set $prop=$expect_value $dataset |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
89 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
90 [[ -n $prop ]] && cur_value=$(get_prop $prop $dataset) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
91 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
92 if [[ "$expect_value" != "" && "$cur_value" != "$old_value" ]]; |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
93 then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
94 log_fail "The '$dataset' '$prop' value '$cur_value' \ |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
95 should equal with '$old_value'." |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
96 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
97 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
98 } |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
99 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
100 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
101 # Cleanup all the user properties of the pool and the dataset reside it. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
102 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
103 # $1 pool name |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
104 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
105 function cleanup_user_prop |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
106 { |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
107 typeset pool=$1 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
108 typeset dtst=$($ZFS list -H -r -o name -t filesystem,volume $pool) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
109 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
110 typeset user_prop |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
111 for dt in $dtst; do |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
112 user_prop=$($ZFS get -H -o property all $dtst | grep ":") |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
113 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
114 typeset prop |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
115 for prop in $user_prop; do |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
116 $ZFS inherit $prop $dt |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
117 (($? != 0)) && log_must $ZFS inherit $prop $dt |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
118 done |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
119 done |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
120 } |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
121 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
122 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
123 # Random select charactor from the specified charactor set and combine into a |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
124 # random string |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
125 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
126 # $1 character set name |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
127 # $2 String length |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
128 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
129 function random_string |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
130 { |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
131 typeset char_set=${1:-VALID_NAME_CHAR} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
132 typeset -i len=${2:-5} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
133 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
134 eval typeset -i count=\${#$char_set[@]} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
135 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
136 typeset str |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
137 typeset -i i=0 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
138 while ((i < len)); do |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
139 typeset -i ind |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
140 ((ind = RANDOM % count)) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
141 eval str=\${str}\${$char_set[\$ind]} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
142 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
143 ((i += 1)) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
144 done |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
145 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
146 $ECHO "$str" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
147 } |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
148 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
149 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
150 # Get vaild user defined property name |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
151 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
152 # $1 user defined property name length |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
153 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
154 function valid_user_property |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
155 { |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
156 typeset -i sumlen=${1:-10} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
157 ((sumlen < 2 )) && sumlen=2 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
158 typeset -i len |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
159 ((len = RANDOM % sumlen)) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
160 typeset part1 part2 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
161 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
162 while true; do |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
163 part1="$(random_string VALID_NAME_CHAR $len)" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
164 if [[ "$part1" == "-"* ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
165 continue |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
166 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
167 break |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
168 done |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
169 ((len = sumlen - (len + 1))) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
170 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
171 while true; do |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
172 part2="$(random_string VALID_NAME_CHAR $len)" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
173 if [[ -z $part1 && -z $part2 ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
174 continue |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
175 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
176 break |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
177 done |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
178 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
179 $ECHO "${part1}:${part2}" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
180 } |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
181 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
182 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
183 # Get invaild user defined property name |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
184 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
185 # $1 user defined property name length |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
186 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
187 function invalid_user_property |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
188 { |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
189 typeset -i sumlen=${1:-10} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
190 ((sumlen == 0)) && sumlen=1 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
191 typeset -i len |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
192 ((len = RANDOM % sumlen)) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
193 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
194 typeset part1 part2 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
195 while true; do |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
196 part1="$(random_string VALID_NAME_CHAR $len)" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
197 ((len = sumlen - len)) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
198 part2="$(random_string INVALID_NAME_CHAR $len)" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
199 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
200 # Avoid $part1 is *:* and $part2 is "=*" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
201 if [[ "$part1" == *":"* && "$part2" == "="* ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
202 continue |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
203 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
204 break |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
205 done |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
206 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
207 $ECHO "${part1}${part2}" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
208 } |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
209 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
210 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
211 # Get user property value |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
212 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
213 # $1 user defined property name length |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
214 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
215 function user_property_value |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
216 { |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
217 typeset -i len=${1:-100} |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
218 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
219 typeset value=$(random_string ALL_CHAR $len) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
220 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
221 $ECHO "$value" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
222 } |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
223 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
224 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
225 # Check if the user property is identical to the expected value. |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
226 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
227 # $1 dataset |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
228 # $2 user property |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
229 # $3 expected value |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
230 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
231 function check_user_prop |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
232 { |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
233 typeset dtst=$1 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
234 typeset user_prop="$2" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
235 typeset expect_value="$3" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
236 typeset value=$($ZFS get -p -H -o value "$user_prop" $dtst 2>&1) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
237 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
238 if [[ "$expect_value" == "$value" ]]; then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
239 return 0 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
240 else |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
241 return 1 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
242 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
243 } |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
244 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
245 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
246 # Get source of the dataset |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
247 # |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
248 function get_source |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
249 { |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
250 typeset prop=$1 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
251 typeset dataset=$2 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
252 typeset source |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
253 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
254 source=$($ZFS get -H -o source $prop $dataset) |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
255 if (($? != 0)); then |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
256 log_fail "Unable to get $prop source for dataset $dataset" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
257 fi |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
258 |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
259 $ECHO "$source" |
0bcf78798346
3311 Want a test framework for arbitrary OS unit tests
John Wren Kennedy <john.kennedy@delphix.com>
parents:
diff
changeset
|
260 } |