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