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_destroy_001_pos cleanup
30zfs_destroy_001_pos_head()
31{
32	atf_set "descr" "'zfs destroy -r|-R|-f|-rf|-Rf <fs|ctr|vol|snap>' shouldrecursively destroy all children."
33	atf_set "require.progs" "ksh93 zfs"
34	atf_set "timeout" 3600
35}
36zfs_destroy_001_pos_body()
37{
38	. $(atf_get_srcdir)/../../../include/default.cfg
39	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
40	. $(atf_get_srcdir)/zfs_destroy.cfg
41
42	verify_disk_count "$DISKS" 1
43	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
44	ksh93 $(atf_get_srcdir)/zfs_destroy_001_pos.ksh || atf_fail "Testcase failed"
45}
46zfs_destroy_001_pos_cleanup()
47{
48	. $(atf_get_srcdir)/../../../include/default.cfg
49	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
50	. $(atf_get_srcdir)/zfs_destroy.cfg
51
52	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
53}
54
55
56atf_test_case zfs_destroy_002_pos cleanup
57zfs_destroy_002_pos_head()
58{
59	atf_set "descr" "Verify 'zfs destroy' can destroy the specified datasets without activedependents."
60	atf_set "require.progs" "ksh93 zfs"
61	atf_set "timeout" 3600
62}
63zfs_destroy_002_pos_body()
64{
65	. $(atf_get_srcdir)/../../../include/default.cfg
66	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
67	. $(atf_get_srcdir)/zfs_destroy.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_destroy_002_pos.ksh || atf_fail "Testcase failed"
72}
73zfs_destroy_002_pos_cleanup()
74{
75	. $(atf_get_srcdir)/../../../include/default.cfg
76	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
77	. $(atf_get_srcdir)/zfs_destroy.cfg
78
79	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
80}
81
82
83atf_test_case zfs_destroy_003_pos cleanup
84zfs_destroy_003_pos_head()
85{
86	atf_set "descr" "Verify that 'zfs destroy [-rR]' succeeds as root."
87	atf_set "require.progs" "ksh93 zfs"
88	atf_set "timeout" 3600
89}
90zfs_destroy_003_pos_body()
91{
92	. $(atf_get_srcdir)/../../../include/default.cfg
93	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
94	. $(atf_get_srcdir)/zfs_destroy.cfg
95
96	verify_disk_count "$DISKS" 1
97	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
98	ksh93 $(atf_get_srcdir)/zfs_destroy_003_pos.ksh || atf_fail "Testcase failed"
99}
100zfs_destroy_003_pos_cleanup()
101{
102	. $(atf_get_srcdir)/../../../include/default.cfg
103	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
104	. $(atf_get_srcdir)/zfs_destroy.cfg
105
106	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
107}
108
109
110atf_test_case zfs_destroy_004_pos cleanup
111zfs_destroy_004_pos_head()
112{
113	atf_set "descr" "Verify that 'zfs destroy -f' succeeds as root."
114	atf_set "require.progs" "ksh93 zfs"
115	atf_set "timeout" 3600
116}
117zfs_destroy_004_pos_body()
118{
119	. $(atf_get_srcdir)/../../../include/default.cfg
120	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
121	. $(atf_get_srcdir)/zfs_destroy.cfg
122
123	verify_disk_count "$DISKS" 1
124	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
125	ksh93 $(atf_get_srcdir)/zfs_destroy_004_pos.ksh || atf_fail "Testcase failed"
126}
127zfs_destroy_004_pos_cleanup()
128{
129	. $(atf_get_srcdir)/../../../include/default.cfg
130	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
131	. $(atf_get_srcdir)/zfs_destroy.cfg
132
133	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
134}
135
136
137atf_test_case zfs_destroy_005_neg cleanup
138zfs_destroy_005_neg_head()
139{
140	atf_set "descr" "Separately verify 'zfs destroy -f|-r|-rf|-R|-rR <dataset>' willfail in different conditions."
141	atf_set "require.progs" "ksh93 zfs"
142	atf_set "timeout" 3600
143}
144zfs_destroy_005_neg_body()
145{
146	. $(atf_get_srcdir)/../../../include/default.cfg
147	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
148	. $(atf_get_srcdir)/zfs_destroy.cfg
149
150	verify_disk_count "$DISKS" 1
151	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
152	ksh93 $(atf_get_srcdir)/zfs_destroy_005_neg.ksh || atf_fail "Testcase failed"
153}
154zfs_destroy_005_neg_cleanup()
155{
156	. $(atf_get_srcdir)/../../../include/default.cfg
157	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
158	. $(atf_get_srcdir)/zfs_destroy.cfg
159
160	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
161}
162
163
164atf_test_case zfs_destroy_006_neg cleanup
165zfs_destroy_006_neg_head()
166{
167	atf_set "descr" "'zfs destroy' should return an error with badly-formed parameters."
168	atf_set "require.progs" "ksh93 zfs"
169	atf_set "timeout" 3600
170}
171zfs_destroy_006_neg_body()
172{
173	. $(atf_get_srcdir)/../../../include/default.cfg
174	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
175	. $(atf_get_srcdir)/zfs_destroy.cfg
176
177	verify_disk_count "$DISKS" 1
178	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
179	ksh93 $(atf_get_srcdir)/zfs_destroy_006_neg.ksh || atf_fail "Testcase failed"
180}
181zfs_destroy_006_neg_cleanup()
182{
183	. $(atf_get_srcdir)/../../../include/default.cfg
184	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
185	. $(atf_get_srcdir)/zfs_destroy.cfg
186
187	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
188}
189
190
191atf_test_case zfs_destroy_007_neg cleanup
192zfs_destroy_007_neg_head()
193{
194	atf_set "descr" "Destroy dataset which is namespace-parent of origin should failed."
195	atf_set "require.progs" "ksh93 zfs"
196	atf_set "timeout" 3600
197}
198zfs_destroy_007_neg_body()
199{
200	. $(atf_get_srcdir)/../../../include/default.cfg
201	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
202	. $(atf_get_srcdir)/zfs_destroy.cfg
203
204	verify_disk_count "$DISKS" 1
205	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
206	ksh93 $(atf_get_srcdir)/zfs_destroy_007_neg.ksh || atf_fail "Testcase failed"
207}
208zfs_destroy_007_neg_cleanup()
209{
210	. $(atf_get_srcdir)/../../../include/default.cfg
211	. $(atf_get_srcdir)/zfs_destroy_common.kshlib
212	. $(atf_get_srcdir)/zfs_destroy.cfg
213
214	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
215}
216
217
218atf_init_test_cases()
219{
220
221	atf_add_test_case zfs_destroy_001_pos
222	atf_add_test_case zfs_destroy_002_pos
223	atf_add_test_case zfs_destroy_003_pos
224	atf_add_test_case zfs_destroy_004_pos
225	atf_add_test_case zfs_destroy_005_neg
226	atf_add_test_case zfs_destroy_006_neg
227	atf_add_test_case zfs_destroy_007_neg
228}
229