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_create_001_pos cleanup
28zfs_create_001_pos_head()
29{
30	atf_set "descr" "'zfs create <filesystem>' can create a ZFS filesystem in the namespace."
31	atf_set "require.progs" "ksh93 zfs"
32}
33zfs_create_001_pos_body()
34{
35	. $(atf_get_srcdir)/../../../include/default.cfg
36	. $(atf_get_srcdir)/zfs_create_common.kshlib
37	. $(atf_get_srcdir)/properties.kshlib
38	. $(atf_get_srcdir)/zfs_create.cfg
39
40	verify_disk_count "$DISKS" 1
41	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
42	ksh93 $(atf_get_srcdir)/zfs_create_001_pos.ksh || atf_fail "Testcase failed"
43}
44zfs_create_001_pos_cleanup()
45{
46	. $(atf_get_srcdir)/../../../include/default.cfg
47	. $(atf_get_srcdir)/zfs_create_common.kshlib
48	. $(atf_get_srcdir)/properties.kshlib
49	. $(atf_get_srcdir)/zfs_create.cfg
50
51	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
52}
53
54
55atf_test_case zfs_create_002_pos cleanup
56zfs_create_002_pos_head()
57{
58	atf_set "descr" "'zfs create -s -V <size> <volume>' succeeds"
59	atf_set "require.progs" "ksh93 zfs"
60}
61zfs_create_002_pos_body()
62{
63	. $(atf_get_srcdir)/../../../include/default.cfg
64	. $(atf_get_srcdir)/zfs_create_common.kshlib
65	. $(atf_get_srcdir)/properties.kshlib
66	. $(atf_get_srcdir)/zfs_create.cfg
67
68	verify_disk_count "$DISKS" 1
69	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
70	ksh93 $(atf_get_srcdir)/zfs_create_002_pos.ksh || atf_fail "Testcase failed"
71}
72zfs_create_002_pos_cleanup()
73{
74	. $(atf_get_srcdir)/../../../include/default.cfg
75	. $(atf_get_srcdir)/zfs_create_common.kshlib
76	. $(atf_get_srcdir)/properties.kshlib
77	. $(atf_get_srcdir)/zfs_create.cfg
78
79	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
80}
81
82
83atf_test_case zfs_create_003_pos cleanup
84zfs_create_003_pos_head()
85{
86	atf_set "descr" "Verify creating volume with specified blocksize works."
87	atf_set "require.progs" "ksh93 zfs"
88}
89zfs_create_003_pos_body()
90{
91	. $(atf_get_srcdir)/../../../include/default.cfg
92	. $(atf_get_srcdir)/zfs_create_common.kshlib
93	. $(atf_get_srcdir)/properties.kshlib
94	. $(atf_get_srcdir)/zfs_create.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_create_003_pos.ksh || atf_fail "Testcase failed"
99}
100zfs_create_003_pos_cleanup()
101{
102	. $(atf_get_srcdir)/../../../include/default.cfg
103	. $(atf_get_srcdir)/zfs_create_common.kshlib
104	. $(atf_get_srcdir)/properties.kshlib
105	. $(atf_get_srcdir)/zfs_create.cfg
106
107	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
108}
109
110
111atf_test_case zfs_create_004_pos cleanup
112zfs_create_004_pos_head()
113{
114	atf_set "descr" "'zfs create -o property=value filesystem' can successfully createa ZFS filesystem with correct property set."
115	atf_set "require.progs" "ksh93 zfs"
116}
117zfs_create_004_pos_body()
118{
119	. $(atf_get_srcdir)/../../../include/default.cfg
120	. $(atf_get_srcdir)/zfs_create_common.kshlib
121	. $(atf_get_srcdir)/properties.kshlib
122	. $(atf_get_srcdir)/zfs_create.cfg
123
124	verify_disk_count "$DISKS" 1
125	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
126	ksh93 $(atf_get_srcdir)/zfs_create_004_pos.ksh || atf_fail "Testcase failed"
127}
128zfs_create_004_pos_cleanup()
129{
130	. $(atf_get_srcdir)/../../../include/default.cfg
131	. $(atf_get_srcdir)/zfs_create_common.kshlib
132	. $(atf_get_srcdir)/properties.kshlib
133	. $(atf_get_srcdir)/zfs_create.cfg
134
135	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
136}
137
138
139atf_test_case zfs_create_005_pos cleanup
140zfs_create_005_pos_head()
141{
142	atf_set "descr" "'zfs create -o property=value filesystem' can successfully createa ZFS filesystem with multiple properties set."
143	atf_set "require.progs" "ksh93 zfs"
144}
145zfs_create_005_pos_body()
146{
147	. $(atf_get_srcdir)/../../../include/default.cfg
148	. $(atf_get_srcdir)/zfs_create_common.kshlib
149	. $(atf_get_srcdir)/properties.kshlib
150	. $(atf_get_srcdir)/zfs_create.cfg
151
152	verify_disk_count "$DISKS" 1
153	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
154	ksh93 $(atf_get_srcdir)/zfs_create_005_pos.ksh || atf_fail "Testcase failed"
155}
156zfs_create_005_pos_cleanup()
157{
158	. $(atf_get_srcdir)/../../../include/default.cfg
159	. $(atf_get_srcdir)/zfs_create_common.kshlib
160	. $(atf_get_srcdir)/properties.kshlib
161	. $(atf_get_srcdir)/zfs_create.cfg
162
163	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
164}
165
166
167atf_test_case zfs_create_006_pos cleanup
168zfs_create_006_pos_head()
169{
170	atf_set "descr" "'zfs create -o property=value -V size volume' can successfullycreate a ZFS volume with correct property set."
171	atf_set "require.progs" "ksh93 zfs"
172}
173zfs_create_006_pos_body()
174{
175	. $(atf_get_srcdir)/../../../include/default.cfg
176	. $(atf_get_srcdir)/zfs_create_common.kshlib
177	. $(atf_get_srcdir)/properties.kshlib
178	. $(atf_get_srcdir)/zfs_create.cfg
179
180	verify_disk_count "$DISKS" 1
181	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
182	ksh93 $(atf_get_srcdir)/zfs_create_006_pos.ksh || atf_fail "Testcase failed"
183}
184zfs_create_006_pos_cleanup()
185{
186	. $(atf_get_srcdir)/../../../include/default.cfg
187	. $(atf_get_srcdir)/zfs_create_common.kshlib
188	. $(atf_get_srcdir)/properties.kshlib
189	. $(atf_get_srcdir)/zfs_create.cfg
190
191	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
192}
193
194
195atf_test_case zfs_create_007_pos cleanup
196zfs_create_007_pos_head()
197{
198	atf_set "descr" "'zfs create -o property=value -V size volume' can successfullycreate a ZFS volume with correct property set."
199	atf_set "require.progs" "ksh93 zfs"
200}
201zfs_create_007_pos_body()
202{
203	. $(atf_get_srcdir)/../../../include/default.cfg
204	. $(atf_get_srcdir)/zfs_create_common.kshlib
205	. $(atf_get_srcdir)/properties.kshlib
206	. $(atf_get_srcdir)/zfs_create.cfg
207
208	verify_disk_count "$DISKS" 1
209	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
210	ksh93 $(atf_get_srcdir)/zfs_create_007_pos.ksh || atf_fail "Testcase failed"
211}
212zfs_create_007_pos_cleanup()
213{
214	. $(atf_get_srcdir)/../../../include/default.cfg
215	. $(atf_get_srcdir)/zfs_create_common.kshlib
216	. $(atf_get_srcdir)/properties.kshlib
217	. $(atf_get_srcdir)/zfs_create.cfg
218
219	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
220}
221
222
223atf_test_case zfs_create_008_neg cleanup
224zfs_create_008_neg_head()
225{
226	atf_set "descr" "'zfs create' should return an error with badly-formed parameters."
227	atf_set "require.progs" "ksh93 zfs"
228}
229zfs_create_008_neg_body()
230{
231	atf_expect_fail 'kern/221987 - ZFS does not validate the sharenfs parameter'
232	. $(atf_get_srcdir)/../../../include/default.cfg
233	. $(atf_get_srcdir)/zfs_create_common.kshlib
234	. $(atf_get_srcdir)/properties.kshlib
235	. $(atf_get_srcdir)/zfs_create.cfg
236
237	verify_disk_count "$DISKS" 1
238	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
239	ksh93 $(atf_get_srcdir)/zfs_create_008_neg.ksh || atf_fail "Testcase failed"
240}
241zfs_create_008_neg_cleanup()
242{
243	. $(atf_get_srcdir)/../../../include/default.cfg
244	. $(atf_get_srcdir)/zfs_create_common.kshlib
245	. $(atf_get_srcdir)/properties.kshlib
246	. $(atf_get_srcdir)/zfs_create.cfg
247
248	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
249}
250
251
252atf_test_case zfs_create_009_neg cleanup
253zfs_create_009_neg_head()
254{
255	atf_set "descr" "Verify 'zfs create <filesystem>' fails with bad <filesystem> argument."
256	atf_set "require.progs" "ksh93 zfs"
257}
258zfs_create_009_neg_body()
259{
260	. $(atf_get_srcdir)/../../../include/default.cfg
261	. $(atf_get_srcdir)/zfs_create_common.kshlib
262	. $(atf_get_srcdir)/properties.kshlib
263	. $(atf_get_srcdir)/zfs_create.cfg
264
265	verify_disk_count "$DISKS" 1
266	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
267	ksh93 $(atf_get_srcdir)/zfs_create_009_neg.ksh || atf_fail "Testcase failed"
268}
269zfs_create_009_neg_cleanup()
270{
271	. $(atf_get_srcdir)/../../../include/default.cfg
272	. $(atf_get_srcdir)/zfs_create_common.kshlib
273	. $(atf_get_srcdir)/properties.kshlib
274	. $(atf_get_srcdir)/zfs_create.cfg
275
276	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
277}
278
279
280atf_test_case zfs_create_010_neg cleanup
281zfs_create_010_neg_head()
282{
283	atf_set "descr" "Verify 'zfs create [-s] [-b <blocksize> ] -V <size> <volume>' fails withbadly-formed <size> or <volume> arguments."
284	atf_set "require.progs" "ksh93 zfs"
285}
286zfs_create_010_neg_body()
287{
288	. $(atf_get_srcdir)/../../../include/default.cfg
289	. $(atf_get_srcdir)/zfs_create_common.kshlib
290	. $(atf_get_srcdir)/properties.kshlib
291	. $(atf_get_srcdir)/zfs_create.cfg
292
293	verify_disk_count "$DISKS" 1
294	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
295	ksh93 $(atf_get_srcdir)/zfs_create_010_neg.ksh || atf_fail "Testcase failed"
296}
297zfs_create_010_neg_cleanup()
298{
299	. $(atf_get_srcdir)/../../../include/default.cfg
300	. $(atf_get_srcdir)/zfs_create_common.kshlib
301	. $(atf_get_srcdir)/properties.kshlib
302	. $(atf_get_srcdir)/zfs_create.cfg
303
304	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
305}
306
307
308atf_test_case zfs_create_011_pos cleanup
309zfs_create_011_pos_head()
310{
311	atf_set "descr" "'zfs create -p' works as expected."
312	atf_set "require.progs" "ksh93 zfs"
313}
314zfs_create_011_pos_body()
315{
316	. $(atf_get_srcdir)/../../../include/default.cfg
317	. $(atf_get_srcdir)/zfs_create_common.kshlib
318	. $(atf_get_srcdir)/properties.kshlib
319	. $(atf_get_srcdir)/zfs_create.cfg
320
321	verify_disk_count "$DISKS" 1
322	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
323	ksh93 $(atf_get_srcdir)/zfs_create_011_pos.ksh || atf_fail "Testcase failed"
324}
325zfs_create_011_pos_cleanup()
326{
327	. $(atf_get_srcdir)/../../../include/default.cfg
328	. $(atf_get_srcdir)/zfs_create_common.kshlib
329	. $(atf_get_srcdir)/properties.kshlib
330	. $(atf_get_srcdir)/zfs_create.cfg
331
332	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
333}
334
335
336atf_test_case zfs_create_012_pos cleanup
337zfs_create_012_pos_head()
338{
339	atf_set "descr" "'zfs create -p -o version=1' only cause the leaf filesystem to be version=1."
340	atf_set "require.progs" "ksh93 zfs"
341}
342zfs_create_012_pos_body()
343{
344	. $(atf_get_srcdir)/../../../include/default.cfg
345	. $(atf_get_srcdir)/zfs_create_common.kshlib
346	. $(atf_get_srcdir)/properties.kshlib
347	. $(atf_get_srcdir)/zfs_create.cfg
348
349	verify_disk_count "$DISKS" 1
350	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
351	ksh93 $(atf_get_srcdir)/zfs_create_012_pos.ksh || atf_fail "Testcase failed"
352}
353zfs_create_012_pos_cleanup()
354{
355	. $(atf_get_srcdir)/../../../include/default.cfg
356	. $(atf_get_srcdir)/zfs_create_common.kshlib
357	. $(atf_get_srcdir)/properties.kshlib
358	. $(atf_get_srcdir)/zfs_create.cfg
359
360	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
361}
362
363
364atf_test_case zfs_create_013_pos cleanup
365zfs_create_013_pos_head()
366{
367	atf_set "descr" "'zfs create -s -V <size> <volume>' succeeds"
368	atf_set "require.progs" "ksh93 zfs"
369}
370zfs_create_013_pos_body()
371{
372	. $(atf_get_srcdir)/../../../include/default.cfg
373	. $(atf_get_srcdir)/zfs_create_common.kshlib
374	. $(atf_get_srcdir)/properties.kshlib
375	. $(atf_get_srcdir)/zfs_create.cfg
376
377	verify_disk_count "$DISKS" 1
378	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
379	ksh93 $(atf_get_srcdir)/zfs_create_013_pos.ksh || atf_fail "Testcase failed"
380}
381zfs_create_013_pos_cleanup()
382{
383	. $(atf_get_srcdir)/../../../include/default.cfg
384	. $(atf_get_srcdir)/zfs_create_common.kshlib
385	. $(atf_get_srcdir)/properties.kshlib
386	. $(atf_get_srcdir)/zfs_create.cfg
387
388	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
389}
390
391
392atf_init_test_cases()
393{
394
395	atf_add_test_case zfs_create_001_pos
396	atf_add_test_case zfs_create_002_pos
397	atf_add_test_case zfs_create_003_pos
398	atf_add_test_case zfs_create_004_pos
399	atf_add_test_case zfs_create_005_pos
400	atf_add_test_case zfs_create_006_pos
401	atf_add_test_case zfs_create_007_pos
402	atf_add_test_case zfs_create_008_neg
403	atf_add_test_case zfs_create_009_neg
404	atf_add_test_case zfs_create_010_neg
405	atf_add_test_case zfs_create_011_pos
406	atf_add_test_case zfs_create_012_pos
407	atf_add_test_case zfs_create_013_pos
408}
409