1# CDDL HEADER START
2#
3# The contents of this file are subject to the terms of the
4# Common Development and Distribution License (the "License").
5# You may not use this file except in compliance with the License.
6#
7# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8# or http://www.opensolaris.org/os/licensing.
9# See the License for the specific language governing permissions
10# and limitations under the License.
11#
12# When distributing Covered Code, include this CDDL HEADER in each
13# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14# If applicable, add the following below this CDDL HEADER, with the
15# fields enclosed by brackets "[]" replaced with your own identifying
16# information: Portions Copyright [yyyy] [name of copyright owner]
17#
18# CDDL HEADER END
19#
20
21#
22# Copyright 2012 Spectra Logic.  All rights reserved.
23# Use is subject to license terms.
24#
25
26
27atf_test_case zfs_list_001_pos cleanup
28zfs_list_001_pos_head()
29{
30	atf_set "descr" "Verify 'zfs list [-rH] [-o property[,prop]*] [fs|clct|vol]'."
31	atf_set "require.progs" "ksh93 zfs"
32	atf_set "require.user" root
33	atf_set "require.config" "unprivileged_user"
34}
35zfs_list_001_pos_body()
36{
37	. $(atf_get_srcdir)/../../../include/default.cfg
38	. $(atf_get_srcdir)/zfs_list.kshlib
39	. $(atf_get_srcdir)/zfs_list.cfg
40
41	verify_disk_count "$DISKS" 1
42	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
43	ksh93 $(atf_get_srcdir)/zfs_list_001_pos.ksh || atf_fail "Testcase failed"
44}
45zfs_list_001_pos_cleanup()
46{
47	. $(atf_get_srcdir)/../../../include/default.cfg
48	. $(atf_get_srcdir)/zfs_list.kshlib
49	. $(atf_get_srcdir)/zfs_list.cfg
50
51	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
52}
53
54
55atf_test_case zfs_list_002_pos cleanup
56zfs_list_002_pos_head()
57{
58	atf_set "descr" "The sort functionality in 'zfs list' works as expected."
59	atf_set "require.progs" "ksh93 zfs"
60	atf_set "require.user" root
61	atf_set "require.config" "unprivileged_user"
62}
63zfs_list_002_pos_body()
64{
65	. $(atf_get_srcdir)/../../../include/default.cfg
66	. $(atf_get_srcdir)/zfs_list.kshlib
67	. $(atf_get_srcdir)/zfs_list.cfg
68
69	verify_disk_count "$DISKS" 1
70	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
71	ksh93 $(atf_get_srcdir)/zfs_list_002_pos.ksh || atf_fail "Testcase failed"
72}
73zfs_list_002_pos_cleanup()
74{
75	. $(atf_get_srcdir)/../../../include/default.cfg
76	. $(atf_get_srcdir)/zfs_list.kshlib
77	. $(atf_get_srcdir)/zfs_list.cfg
78
79	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
80}
81
82
83atf_test_case zfs_list_003_pos cleanup
84zfs_list_003_pos_head()
85{
86	atf_set "descr" "Verify 'zfs list -r' could display any children recursively."
87	atf_set "require.progs" "ksh93 zfs"
88	atf_set "require.user" root
89	atf_set "require.config" "unprivileged_user"
90}
91zfs_list_003_pos_body()
92{
93	. $(atf_get_srcdir)/../../../include/default.cfg
94	. $(atf_get_srcdir)/zfs_list.kshlib
95	. $(atf_get_srcdir)/zfs_list.cfg
96
97	verify_disk_count "$DISKS" 1
98	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
99	ksh93 $(atf_get_srcdir)/zfs_list_003_pos.ksh || atf_fail "Testcase failed"
100}
101zfs_list_003_pos_cleanup()
102{
103	. $(atf_get_srcdir)/../../../include/default.cfg
104	. $(atf_get_srcdir)/zfs_list.kshlib
105	. $(atf_get_srcdir)/zfs_list.cfg
106
107	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
108}
109
110
111atf_test_case zfs_list_004_neg cleanup
112zfs_list_004_neg_head()
113{
114	atf_set "descr" "Verify 'zfs list [-r]' should fail while the givendataset/path does not exist or not belong to zfs."
115	atf_set "require.progs" "ksh93 zfs"
116	atf_set "require.user" root
117	atf_set "require.config" "unprivileged_user"
118}
119zfs_list_004_neg_body()
120{
121	. $(atf_get_srcdir)/../../../include/default.cfg
122	. $(atf_get_srcdir)/zfs_list.kshlib
123	. $(atf_get_srcdir)/zfs_list.cfg
124
125	verify_disk_count "$DISKS" 1
126	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
127	ksh93 $(atf_get_srcdir)/zfs_list_004_neg.ksh || atf_fail "Testcase failed"
128}
129zfs_list_004_neg_cleanup()
130{
131	. $(atf_get_srcdir)/../../../include/default.cfg
132	. $(atf_get_srcdir)/zfs_list.kshlib
133	. $(atf_get_srcdir)/zfs_list.cfg
134
135	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
136}
137
138
139atf_test_case zfs_list_005_pos cleanup
140zfs_list_005_pos_head()
141{
142	atf_set "descr" "Verify 'zfs list' evaluate multiple '-s' optionsfrom left to right in decreasing order of importance."
143	atf_set "require.progs" "ksh93 zfs"
144	atf_set "require.user" root
145	atf_set "require.config" "unprivileged_user"
146}
147zfs_list_005_pos_body()
148{
149	. $(atf_get_srcdir)/../../../include/default.cfg
150	. $(atf_get_srcdir)/zfs_list.kshlib
151	. $(atf_get_srcdir)/zfs_list.cfg
152
153	verify_disk_count "$DISKS" 1
154	atf_expect_fail "https://www.illumos.org/issues/8599 Snapshots don't preserve user properties"
155	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
156	ksh93 $(atf_get_srcdir)/zfs_list_005_pos.ksh || atf_fail "Testcase failed"
157}
158zfs_list_005_pos_cleanup()
159{
160	. $(atf_get_srcdir)/../../../include/default.cfg
161	. $(atf_get_srcdir)/zfs_list.kshlib
162	. $(atf_get_srcdir)/zfs_list.cfg
163
164	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
165}
166
167
168atf_test_case zfs_list_006_pos cleanup
169zfs_list_006_pos_head()
170{
171	atf_set "descr" "Verify 'zfs list' exclude list of snapshot."
172	atf_set "require.progs" "ksh93 zfs zpool"
173	atf_set "require.user" root
174	atf_set "require.config" "unprivileged_user"
175}
176zfs_list_006_pos_body()
177{
178	. $(atf_get_srcdir)/../../../include/default.cfg
179	. $(atf_get_srcdir)/zfs_list.kshlib
180	. $(atf_get_srcdir)/zfs_list.cfg
181
182	verify_disk_count "$DISKS" 1
183	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
184	ksh93 $(atf_get_srcdir)/zfs_list_006_pos.ksh || atf_fail "Testcase failed"
185}
186zfs_list_006_pos_cleanup()
187{
188	. $(atf_get_srcdir)/../../../include/default.cfg
189	. $(atf_get_srcdir)/zfs_list.kshlib
190	. $(atf_get_srcdir)/zfs_list.cfg
191
192	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
193}
194
195
196atf_test_case zfs_list_007_pos cleanup
197zfs_list_007_pos_head()
198{
199	atf_set "descr" "'zfs list -d <n>' should get expected output."
200	atf_set "require.progs" "ksh93 zfs"
201	atf_set "require.user" root
202	atf_set "require.config" "unprivileged_user"
203}
204zfs_list_007_pos_body()
205{
206	. $(atf_get_srcdir)/../../../include/default.cfg
207	. $(atf_get_srcdir)/zfs_list.kshlib
208	. $(atf_get_srcdir)/zfs_list.cfg
209
210	verify_disk_count "$DISKS" 1
211	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
212	ksh93 $(atf_get_srcdir)/zfs_list_007_pos.ksh || atf_fail "Testcase failed"
213}
214zfs_list_007_pos_cleanup()
215{
216	. $(atf_get_srcdir)/../../../include/default.cfg
217	. $(atf_get_srcdir)/zfs_list.kshlib
218	. $(atf_get_srcdir)/zfs_list.cfg
219
220	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
221}
222
223
224atf_test_case zfs_list_008_neg cleanup
225zfs_list_008_neg_head()
226{
227	atf_set "descr" "A negative depth or a non numeric depth should fail in 'zfs list -d <n>'"
228	atf_set "require.progs" "ksh93 zfs"
229	atf_set "require.user" root
230	atf_set "require.config" "unprivileged_user"
231}
232zfs_list_008_neg_body()
233{
234	. $(atf_get_srcdir)/../../../include/default.cfg
235	. $(atf_get_srcdir)/zfs_list.kshlib
236	. $(atf_get_srcdir)/zfs_list.cfg
237
238	verify_disk_count "$DISKS" 1
239	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
240	ksh93 $(atf_get_srcdir)/zfs_list_008_neg.ksh || atf_fail "Testcase failed"
241}
242zfs_list_008_neg_cleanup()
243{
244	. $(atf_get_srcdir)/../../../include/default.cfg
245	. $(atf_get_srcdir)/zfs_list.kshlib
246	. $(atf_get_srcdir)/zfs_list.cfg
247
248	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
249}
250
251
252atf_init_test_cases()
253{
254
255	atf_add_test_case zfs_list_001_pos
256	atf_add_test_case zfs_list_002_pos
257	atf_add_test_case zfs_list_003_pos
258	atf_add_test_case zfs_list_004_neg
259	atf_add_test_case zfs_list_005_pos
260	atf_add_test_case zfs_list_006_pos
261	atf_add_test_case zfs_list_007_pos
262	atf_add_test_case zfs_list_008_neg
263}
264