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_mount_001_pos cleanup
28zfs_mount_001_pos_head()
29{
30	atf_set "descr" "Verify that '$ZFS $mountcmd <filesystem>' succeeds as root."
31	atf_set "require.progs" "ksh93 zfs"
32}
33zfs_mount_001_pos_body()
34{
35	. $(atf_get_srcdir)/../../../include/default.cfg
36	. $(atf_get_srcdir)/zfs_mount.kshlib
37	. $(atf_get_srcdir)/zfs_mount.cfg
38
39	verify_disk_count "$DISKS" 1
40	if other_pools_exist; then
41		atf_skip "Can't test unmount -a with existing pools"
42	fi
43
44	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
45	ksh93 $(atf_get_srcdir)/zfs_mount_001_pos.ksh || atf_fail "Testcase failed"
46}
47zfs_mount_001_pos_cleanup()
48{
49	. $(atf_get_srcdir)/../../../include/default.cfg
50	. $(atf_get_srcdir)/zfs_mount.kshlib
51	. $(atf_get_srcdir)/zfs_mount.cfg
52
53	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
54}
55
56
57atf_test_case zfs_mount_002_pos cleanup
58zfs_mount_002_pos_head()
59{
60	atf_set "descr" "Verify that '$ZFS $mountcmd' with a filesystemwhose name is not in 'zfs list' will fail with return code 1."
61	atf_set "require.progs" "ksh93 zfs"
62}
63zfs_mount_002_pos_body()
64{
65	. $(atf_get_srcdir)/../../../include/default.cfg
66	. $(atf_get_srcdir)/zfs_mount.kshlib
67	. $(atf_get_srcdir)/zfs_mount.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_mount_002_pos.ksh || atf_fail "Testcase failed"
72}
73zfs_mount_002_pos_cleanup()
74{
75	. $(atf_get_srcdir)/../../../include/default.cfg
76	. $(atf_get_srcdir)/zfs_mount.kshlib
77	. $(atf_get_srcdir)/zfs_mount.cfg
78
79	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
80}
81
82
83atf_test_case zfs_mount_003_pos cleanup
84zfs_mount_003_pos_head()
85{
86	atf_set "descr" "Verify that '$ZFS $mountcmd' with a filesystemwhose mountpoint property is 'legacy' or 'none'  \will fail with return code 1."
87	atf_set "require.progs" "ksh93 zfs"
88}
89zfs_mount_003_pos_body()
90{
91	. $(atf_get_srcdir)/../../../include/default.cfg
92	. $(atf_get_srcdir)/zfs_mount.kshlib
93	. $(atf_get_srcdir)/zfs_mount.cfg
94
95	verify_disk_count "$DISKS" 1
96	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
97	ksh93 $(atf_get_srcdir)/zfs_mount_003_pos.ksh || atf_fail "Testcase failed"
98}
99zfs_mount_003_pos_cleanup()
100{
101	. $(atf_get_srcdir)/../../../include/default.cfg
102	. $(atf_get_srcdir)/zfs_mount.kshlib
103	. $(atf_get_srcdir)/zfs_mount.cfg
104
105	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
106}
107
108
109atf_test_case zfs_mount_004_pos cleanup
110zfs_mount_004_pos_head()
111{
112	atf_set "descr" "Verify that '$ZFS $mountcmd <filesystem>'with a mounted filesystem will fail with return code 1."
113	atf_set "require.progs" "ksh93 zfs"
114}
115zfs_mount_004_pos_body()
116{
117	. $(atf_get_srcdir)/../../../include/default.cfg
118	. $(atf_get_srcdir)/zfs_mount.kshlib
119	. $(atf_get_srcdir)/zfs_mount.cfg
120
121	verify_disk_count "$DISKS" 1
122	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
123	ksh93 $(atf_get_srcdir)/zfs_mount_004_pos.ksh || atf_fail "Testcase failed"
124}
125zfs_mount_004_pos_cleanup()
126{
127	. $(atf_get_srcdir)/../../../include/default.cfg
128	. $(atf_get_srcdir)/zfs_mount.kshlib
129	. $(atf_get_srcdir)/zfs_mount.cfg
130
131	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
132}
133
134
135atf_test_case zfs_mount_005_pos cleanup
136zfs_mount_005_pos_head()
137{
138	atf_set "descr" "Verify that '$ZFS $mountcmd' with a filesystemwhose mountpoint is currently in use will fail with return code 1."
139	atf_set "require.progs" "ksh93 zfs"
140}
141zfs_mount_005_pos_body()
142{
143	[[ `uname -s` = "FreeBSD" ]] && atf_skip "Unlike Illumos, FreeBSD allows the behavior the prohibition of which is tested by this testcase"
144	. $(atf_get_srcdir)/../../../include/default.cfg
145	. $(atf_get_srcdir)/zfs_mount.kshlib
146	. $(atf_get_srcdir)/zfs_mount.cfg
147
148	verify_disk_count "$DISKS" 1
149	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
150	ksh93 $(atf_get_srcdir)/zfs_mount_005_pos.ksh || atf_fail "Testcase failed"
151}
152zfs_mount_005_pos_cleanup()
153{
154	. $(atf_get_srcdir)/../../../include/default.cfg
155	. $(atf_get_srcdir)/zfs_mount.kshlib
156	. $(atf_get_srcdir)/zfs_mount.cfg
157
158	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
159}
160
161
162atf_test_case zfs_mount_006_pos cleanup
163zfs_mount_006_pos_head()
164{
165	atf_set "descr" "Verify that '$ZFS $mountcmd <filesystem>'which mountpoint be the identical or the top of an existing one  \will fail with return code 1."
166	atf_set "require.progs" "ksh93 zfs"
167}
168zfs_mount_006_pos_body()
169{
170	[[ `uname -s` = "FreeBSD" ]] && atf_skip "Unlike Illumos, FreeBSD allows the behavior the prohibition of which is tested by this testcase"
171	. $(atf_get_srcdir)/../../../include/default.cfg
172	. $(atf_get_srcdir)/zfs_mount.kshlib
173	. $(atf_get_srcdir)/zfs_mount.cfg
174
175	verify_disk_count "$DISKS" 1
176	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
177	ksh93 $(atf_get_srcdir)/zfs_mount_006_pos.ksh || atf_fail "Testcase failed"
178}
179zfs_mount_006_pos_cleanup()
180{
181	. $(atf_get_srcdir)/../../../include/default.cfg
182	. $(atf_get_srcdir)/zfs_mount.kshlib
183	. $(atf_get_srcdir)/zfs_mount.cfg
184
185	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
186}
187
188
189atf_test_case zfs_mount_007_pos cleanup
190zfs_mount_007_pos_head()
191{
192	atf_set "descr" "Verify '-o' will set filesystem property temporarily,without affecting the property that is stored on disk."
193	atf_set "require.progs" "ksh93 zfs"
194}
195zfs_mount_007_pos_body()
196{
197	. $(atf_get_srcdir)/../../../include/default.cfg
198	. $(atf_get_srcdir)/zfs_mount.kshlib
199	. $(atf_get_srcdir)/zfs_mount.cfg
200
201	verify_disk_count "$DISKS" 1
202	atf_expect_fail "PR 115361 zfs get setuid doesn't reflect setuid state as set by zfs mount"
203	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
204	ksh93 $(atf_get_srcdir)/zfs_mount_007_pos.ksh || atf_fail "Testcase failed"
205}
206zfs_mount_007_pos_cleanup()
207{
208	. $(atf_get_srcdir)/../../../include/default.cfg
209	. $(atf_get_srcdir)/zfs_mount.kshlib
210	. $(atf_get_srcdir)/zfs_mount.cfg
211
212	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
213}
214
215
216atf_test_case zfs_mount_008_pos cleanup
217zfs_mount_008_pos_head()
218{
219	atf_set "descr" "Verify 'zfs mount -O' will override existing mount point."
220	atf_set "require.progs" "ksh93 zfs"
221}
222zfs_mount_008_pos_body()
223{
224	. $(atf_get_srcdir)/../../../include/default.cfg
225	. $(atf_get_srcdir)/zfs_mount.kshlib
226	. $(atf_get_srcdir)/zfs_mount.cfg
227
228	verify_disk_count "$DISKS" 1
229	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
230	ksh93 $(atf_get_srcdir)/zfs_mount_008_pos.ksh || atf_fail "Testcase failed"
231}
232zfs_mount_008_pos_cleanup()
233{
234	. $(atf_get_srcdir)/../../../include/default.cfg
235	. $(atf_get_srcdir)/zfs_mount.kshlib
236	. $(atf_get_srcdir)/zfs_mount.cfg
237
238	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
239}
240
241
242atf_test_case zfs_mount_009_neg cleanup
243zfs_mount_009_neg_head()
244{
245	atf_set "descr" "Badly-formed 'zfs $mountcmd' with inapplicable scenariosshould return an error."
246	atf_set "require.progs" "ksh93 zfs"
247}
248zfs_mount_009_neg_body()
249{
250	. $(atf_get_srcdir)/../../../include/default.cfg
251	. $(atf_get_srcdir)/zfs_mount.kshlib
252	. $(atf_get_srcdir)/zfs_mount.cfg
253
254	if other_pools_exist; then
255                atf_skip "Can't test unmount -a with existing pools"
256        fi
257
258	verify_disk_count "$DISKS" 1
259	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
260	ksh93 $(atf_get_srcdir)/zfs_mount_009_neg.ksh || atf_fail "Testcase failed"
261}
262zfs_mount_009_neg_cleanup()
263{
264	. $(atf_get_srcdir)/../../../include/default.cfg
265	. $(atf_get_srcdir)/zfs_mount.kshlib
266	. $(atf_get_srcdir)/zfs_mount.cfg
267
268	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
269}
270
271
272atf_test_case zfs_mount_010_neg cleanup
273zfs_mount_010_neg_head()
274{
275	atf_set "descr" "zfs mount fails with mounted filesystem or busy mountpoint"
276	atf_set "require.progs" "ksh93 zfs"
277}
278zfs_mount_010_neg_body()
279{
280	[[ `uname -s` = "FreeBSD" ]] && atf_skip "Unlike Illumos, FreeBSD allows the behavior the prohibition of which is tested by this testcase"
281	. $(atf_get_srcdir)/../../../include/default.cfg
282	. $(atf_get_srcdir)/zfs_mount.kshlib
283	. $(atf_get_srcdir)/zfs_mount.cfg
284
285	verify_disk_count "$DISKS" 1
286	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
287	ksh93 $(atf_get_srcdir)/zfs_mount_010_neg.ksh || atf_fail "Testcase failed"
288}
289zfs_mount_010_neg_cleanup()
290{
291	. $(atf_get_srcdir)/../../../include/default.cfg
292	. $(atf_get_srcdir)/zfs_mount.kshlib
293	. $(atf_get_srcdir)/zfs_mount.cfg
294
295	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
296}
297
298
299atf_test_case zfs_mount_011_neg cleanup
300zfs_mount_011_neg_head()
301{
302	atf_set "descr" "zfs mount fails with bad parameters"
303	atf_set "require.progs" "ksh93 zfs"
304}
305zfs_mount_011_neg_body()
306{
307	. $(atf_get_srcdir)/../../../include/default.cfg
308	. $(atf_get_srcdir)/zfs_mount.kshlib
309	. $(atf_get_srcdir)/zfs_mount.cfg
310
311	verify_disk_count "$DISKS" 1
312	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
313	ksh93 $(atf_get_srcdir)/zfs_mount_011_neg.ksh || atf_fail "Testcase failed"
314}
315zfs_mount_011_neg_cleanup()
316{
317	. $(atf_get_srcdir)/../../../include/default.cfg
318	. $(atf_get_srcdir)/zfs_mount.kshlib
319	. $(atf_get_srcdir)/zfs_mount.cfg
320
321	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
322}
323
324
325atf_test_case zfs_mount_all_001_pos cleanup
326zfs_mount_all_001_pos_head()
327{
328	atf_set "descr" "Verify that 'zfs $mountall' succeeds as root,and all available ZFS filesystems are mounted."
329	atf_set "require.progs" "ksh93 zfs"
330}
331zfs_mount_all_001_pos_body()
332{
333	. $(atf_get_srcdir)/../../../include/default.cfg
334	. $(atf_get_srcdir)/zfs_mount.kshlib
335	. $(atf_get_srcdir)/zfs_mount.cfg
336
337	if other_pools_exist; then
338                atf_skip "Can't test unmount -a with existing pools"
339        fi
340
341	verify_disk_count "$DISKS" 1
342	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
343	ksh93 $(atf_get_srcdir)/zfs_mount_all_001_pos.ksh || atf_fail "Testcase failed"
344}
345zfs_mount_all_001_pos_cleanup()
346{
347	. $(atf_get_srcdir)/../../../include/default.cfg
348	. $(atf_get_srcdir)/zfs_mount.kshlib
349	. $(atf_get_srcdir)/zfs_mount.cfg
350
351	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
352}
353
354
355atf_init_test_cases()
356{
357
358	atf_add_test_case zfs_mount_001_pos
359	atf_add_test_case zfs_mount_002_pos
360	atf_add_test_case zfs_mount_003_pos
361	atf_add_test_case zfs_mount_004_pos
362	atf_add_test_case zfs_mount_005_pos
363	atf_add_test_case zfs_mount_006_pos
364	atf_add_test_case zfs_mount_007_pos
365	atf_add_test_case zfs_mount_008_pos
366	atf_add_test_case zfs_mount_009_neg
367	atf_add_test_case zfs_mount_010_neg
368	atf_add_test_case zfs_mount_011_neg
369	atf_add_test_case zfs_mount_all_001_pos
370}
371