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