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_share_001_pos cleanup
30zfs_share_001_pos_head()
31{
32	atf_set "descr" "Verify that 'zfs share' succeeds as root."
33	atf_set "require.progs" "ksh93 zfs svcs"
34}
35zfs_share_001_pos_body()
36{
37	. $(atf_get_srcdir)/../../../include/default.cfg
38	. $(atf_get_srcdir)/zfs_share.cfg
39
40	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
41	ksh93 $(atf_get_srcdir)/zfs_share_001_pos.ksh || atf_fail "Testcase failed"
42}
43zfs_share_001_pos_cleanup()
44{
45	. $(atf_get_srcdir)/../../../include/default.cfg
46	. $(atf_get_srcdir)/zfs_share.cfg
47
48	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
49}
50
51
52atf_test_case zfs_share_002_pos cleanup
53zfs_share_002_pos_head()
54{
55	atf_set "descr" "Verify that zfs share with a non-existent file system fails."
56	atf_set "require.progs" "ksh93 zfs svcs"
57}
58zfs_share_002_pos_body()
59{
60	. $(atf_get_srcdir)/../../../include/default.cfg
61	. $(atf_get_srcdir)/zfs_share.cfg
62
63	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
64	ksh93 $(atf_get_srcdir)/zfs_share_002_pos.ksh || atf_fail "Testcase failed"
65}
66zfs_share_002_pos_cleanup()
67{
68	. $(atf_get_srcdir)/../../../include/default.cfg
69	. $(atf_get_srcdir)/zfs_share.cfg
70
71	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
72}
73
74
75atf_test_case zfs_share_003_pos cleanup
76zfs_share_003_pos_head()
77{
78	atf_set "descr" "Verify that '$ZFS share' with a file systemwhose sharenfs property is 'off'   \will fail with return code 1."
79	atf_set "require.progs" "ksh93 zfs svcs"
80}
81zfs_share_003_pos_body()
82{
83	. $(atf_get_srcdir)/../../../include/default.cfg
84	. $(atf_get_srcdir)/zfs_share.cfg
85
86	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
87	ksh93 $(atf_get_srcdir)/zfs_share_003_pos.ksh || atf_fail "Testcase failed"
88}
89zfs_share_003_pos_cleanup()
90{
91	. $(atf_get_srcdir)/../../../include/default.cfg
92	. $(atf_get_srcdir)/zfs_share.cfg
93
94	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
95}
96
97
98atf_test_case zfs_share_004_pos cleanup
99zfs_share_004_pos_head()
100{
101	atf_set "descr" "Verify that a file system and its snapshot are shared."
102	atf_set "require.progs" "ksh93 zfs svcs"
103}
104zfs_share_004_pos_body()
105{
106	. $(atf_get_srcdir)/../../../include/default.cfg
107	. $(atf_get_srcdir)/zfs_share.cfg
108
109	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
110	ksh93 $(atf_get_srcdir)/zfs_share_004_pos.ksh || atf_fail "Testcase failed"
111}
112zfs_share_004_pos_cleanup()
113{
114	. $(atf_get_srcdir)/../../../include/default.cfg
115	. $(atf_get_srcdir)/zfs_share.cfg
116
117	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
118}
119
120
121atf_test_case zfs_share_005_pos cleanup
122zfs_share_005_pos_head()
123{
124	atf_set "descr" "Verify that NFS share options are propagated correctly."
125	atf_set "require.progs" "ksh93 zfs share svcs"
126}
127zfs_share_005_pos_body()
128{
129	. $(atf_get_srcdir)/../../../include/default.cfg
130	. $(atf_get_srcdir)/zfs_share.cfg
131
132	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
133	ksh93 $(atf_get_srcdir)/zfs_share_005_pos.ksh || atf_fail "Testcase failed"
134}
135zfs_share_005_pos_cleanup()
136{
137	. $(atf_get_srcdir)/../../../include/default.cfg
138	. $(atf_get_srcdir)/zfs_share.cfg
139
140	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
141}
142
143
144atf_test_case zfs_share_006_pos cleanup
145zfs_share_006_pos_head()
146{
147	atf_set "descr" "Verify that a dataset could not be shared,but its sub-filesystems could be shared."
148	atf_set "require.progs" "ksh93 zfs svcs"
149}
150zfs_share_006_pos_body()
151{
152	. $(atf_get_srcdir)/../../../include/default.cfg
153	. $(atf_get_srcdir)/zfs_share.cfg
154
155	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
156	ksh93 $(atf_get_srcdir)/zfs_share_006_pos.ksh || atf_fail "Testcase failed"
157}
158zfs_share_006_pos_cleanup()
159{
160	. $(atf_get_srcdir)/../../../include/default.cfg
161	. $(atf_get_srcdir)/zfs_share.cfg
162
163	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
164}
165
166
167atf_test_case zfs_share_007_neg cleanup
168zfs_share_007_neg_head()
169{
170	atf_set "descr" "Verify that invalid share parameters and options are caught."
171	atf_set "require.progs" "ksh93 zfs share svcs"
172}
173zfs_share_007_neg_body()
174{
175	. $(atf_get_srcdir)/../../../include/default.cfg
176	. $(atf_get_srcdir)/zfs_share.cfg
177
178	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
179	ksh93 $(atf_get_srcdir)/zfs_share_007_neg.ksh || atf_fail "Testcase failed"
180}
181zfs_share_007_neg_cleanup()
182{
183	. $(atf_get_srcdir)/../../../include/default.cfg
184	. $(atf_get_srcdir)/zfs_share.cfg
185
186	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
187}
188
189
190atf_test_case zfs_share_008_neg cleanup
191zfs_share_008_neg_head()
192{
193	atf_set "descr" "Verify that sharing a dataset other than filesystem fails."
194	atf_set "require.progs" "ksh93 zfs svcs"
195}
196zfs_share_008_neg_body()
197{
198	. $(atf_get_srcdir)/../../../include/default.cfg
199	. $(atf_get_srcdir)/zfs_share.cfg
200
201	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
202	ksh93 $(atf_get_srcdir)/zfs_share_008_neg.ksh || atf_fail "Testcase failed"
203}
204zfs_share_008_neg_cleanup()
205{
206	. $(atf_get_srcdir)/../../../include/default.cfg
207	. $(atf_get_srcdir)/zfs_share.cfg
208
209	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
210}
211
212
213atf_test_case zfs_share_009_neg cleanup
214zfs_share_009_neg_head()
215{
216	atf_set "descr" "zfs share fails with shared filesystem"
217	atf_set "require.progs" "ksh93 zfs share svcs"
218}
219zfs_share_009_neg_body()
220{
221	. $(atf_get_srcdir)/../../../include/default.cfg
222	. $(atf_get_srcdir)/zfs_share.cfg
223
224	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
225	ksh93 $(atf_get_srcdir)/zfs_share_009_neg.ksh || atf_fail "Testcase failed"
226}
227zfs_share_009_neg_cleanup()
228{
229	. $(atf_get_srcdir)/../../../include/default.cfg
230	. $(atf_get_srcdir)/zfs_share.cfg
231
232	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
233}
234
235
236atf_test_case zfs_share_009_pos cleanup
237zfs_share_009_pos_head()
238{
239	atf_set "descr" "Verify umount/rollback/destroy fails does not unshare the sharedfile system"
240	atf_set "require.progs" "ksh93 zfs svcs"
241}
242zfs_share_009_pos_body()
243{
244	. $(atf_get_srcdir)/../../../include/default.cfg
245	. $(atf_get_srcdir)/zfs_share.cfg
246
247	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
248	ksh93 $(atf_get_srcdir)/zfs_share_009_pos.ksh || atf_fail "Testcase failed"
249}
250zfs_share_009_pos_cleanup()
251{
252	. $(atf_get_srcdir)/../../../include/default.cfg
253	. $(atf_get_srcdir)/zfs_share.cfg
254
255	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
256}
257
258
259atf_test_case zfs_share_010_neg cleanup
260zfs_share_010_neg_head()
261{
262	atf_set "descr" "zfs share fails with bad parameters"
263	atf_set "require.progs" "ksh93 zfs svcs"
264}
265zfs_share_010_neg_body()
266{
267	. $(atf_get_srcdir)/../../../include/default.cfg
268	. $(atf_get_srcdir)/zfs_share.cfg
269
270	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
271	ksh93 $(atf_get_srcdir)/zfs_share_010_neg.ksh || atf_fail "Testcase failed"
272}
273zfs_share_010_neg_cleanup()
274{
275	. $(atf_get_srcdir)/../../../include/default.cfg
276	. $(atf_get_srcdir)/zfs_share.cfg
277
278	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
279}
280
281
282atf_init_test_cases()
283{
284
285	atf_add_test_case zfs_share_001_pos
286	atf_add_test_case zfs_share_002_pos
287	atf_add_test_case zfs_share_003_pos
288	atf_add_test_case zfs_share_004_pos
289	atf_add_test_case zfs_share_005_pos
290	atf_add_test_case zfs_share_006_pos
291	atf_add_test_case zfs_share_007_neg
292	atf_add_test_case zfs_share_008_neg
293	atf_add_test_case zfs_share_009_neg
294	atf_add_test_case zfs_share_009_pos
295	atf_add_test_case zfs_share_010_neg
296}
297