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_acl_chmod_001_pos cleanup
30zfs_acl_chmod_001_pos_head()
31{
32	atf_set "descr" "Verify chmod permission settings on files and directories"
33}
34zfs_acl_chmod_001_pos_body()
35{
36	. $(atf_get_srcdir)/../../../include/default.cfg
37	. $(atf_get_srcdir)/../acl.cfg
38
39	verify_disk_count "$DISKS" 1
40	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
41	ksh93 $(atf_get_srcdir)/zfs_acl_chmod_001_pos.ksh || atf_fail "Testcase failed"
42}
43zfs_acl_chmod_001_pos_cleanup()
44{
45	. $(atf_get_srcdir)/../../../include/default.cfg
46	. $(atf_get_srcdir)/../acl.cfg
47
48	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
49}
50
51
52atf_test_case zfs_acl_compress_001_pos cleanup
53zfs_acl_compress_001_pos_head()
54{
55	atf_set "descr" "Compress will keep file attribute intact after the file iscompressed and uncompressed"
56	atf_set "require.config" zfs_acl zfs_xattr
57}
58zfs_acl_compress_001_pos_body()
59{
60	. $(atf_get_srcdir)/../../../include/default.cfg
61	. $(atf_get_srcdir)/../acl.cfg
62
63	verify_disk_count "$DISKS" 1
64	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
65	ksh93 $(atf_get_srcdir)/zfs_acl_compress_001_pos.ksh || atf_fail "Testcase failed"
66}
67zfs_acl_compress_001_pos_cleanup()
68{
69	. $(atf_get_srcdir)/../../../include/default.cfg
70	. $(atf_get_srcdir)/../acl.cfg
71
72	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
73}
74
75
76atf_test_case zfs_acl_cp_001_pos cleanup
77zfs_acl_cp_001_pos_head()
78{
79	atf_set "descr" "Verifies that cp will include file attribute when using the -@ flag"
80	atf_set "require.config" zfs_acl zfs_xattr
81}
82zfs_acl_cp_001_pos_body()
83{
84	. $(atf_get_srcdir)/../../../include/default.cfg
85	. $(atf_get_srcdir)/../acl.cfg
86
87	verify_disk_count "$DISKS" 1
88	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
89	ksh93 $(atf_get_srcdir)/zfs_acl_cp_001_pos.ksh || atf_fail "Testcase failed"
90}
91zfs_acl_cp_001_pos_cleanup()
92{
93	. $(atf_get_srcdir)/../../../include/default.cfg
94	. $(atf_get_srcdir)/../acl.cfg
95
96	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
97}
98
99
100atf_test_case zfs_acl_cp_002_neg cleanup
101zfs_acl_cp_002_neg_head()
102{
103	atf_set "descr" "Verifies that cp will not include file attribute when the -@ flagis not present."
104	atf_set "require.config" zfs_acl zfs_xattr
105}
106zfs_acl_cp_002_neg_body()
107{
108	. $(atf_get_srcdir)/../../../include/default.cfg
109	. $(atf_get_srcdir)/../acl.cfg
110
111	verify_disk_count "$DISKS" 1
112	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
113	ksh93 $(atf_get_srcdir)/zfs_acl_cp_002_neg.ksh || atf_fail "Testcase failed"
114}
115zfs_acl_cp_002_neg_cleanup()
116{
117	. $(atf_get_srcdir)/../../../include/default.cfg
118	. $(atf_get_srcdir)/../acl.cfg
119
120	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
121}
122
123
124atf_test_case zfs_acl_cp_003_neg cleanup
125zfs_acl_cp_003_neg_head()
126{
127	atf_set "descr" "Verifies that cp won't be able to include file attribute whenattribute is unreadable (except root)"
128	atf_set "require.config" zfs_acl zfs_xattr
129	atf_set "require.progs"  runat
130}
131zfs_acl_cp_003_neg_body()
132{
133	. $(atf_get_srcdir)/../../../include/default.cfg
134	. $(atf_get_srcdir)/../acl.cfg
135
136	verify_disk_count "$DISKS" 1
137	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
138	ksh93 $(atf_get_srcdir)/zfs_acl_cp_003_neg.ksh || atf_fail "Testcase failed"
139}
140zfs_acl_cp_003_neg_cleanup()
141{
142	. $(atf_get_srcdir)/../../../include/default.cfg
143	. $(atf_get_srcdir)/../acl.cfg
144
145	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
146}
147
148
149atf_test_case zfs_acl_find_001_pos cleanup
150zfs_acl_find_001_pos_head()
151{
152	atf_set "descr" "Verifies ability to find files with attribute with-xattr flag and using '-exec runat ls'"
153	atf_set "require.config" zfs_acl zfs_xattr
154}
155zfs_acl_find_001_pos_body()
156{
157	. $(atf_get_srcdir)/../../../include/default.cfg
158	. $(atf_get_srcdir)/../acl.cfg
159
160	verify_disk_count "$DISKS" 1
161	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
162	ksh93 $(atf_get_srcdir)/zfs_acl_find_001_pos.ksh || atf_fail "Testcase failed"
163}
164zfs_acl_find_001_pos_cleanup()
165{
166	. $(atf_get_srcdir)/../../../include/default.cfg
167	. $(atf_get_srcdir)/../acl.cfg
168
169	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
170}
171
172
173atf_test_case zfs_acl_find_002_neg cleanup
174zfs_acl_find_002_neg_head()
175{
176	atf_set "descr" "verifies -xattr doesn't include files withoutattribute and using '-exec runat ls'"
177	atf_set "require.config" zfs_acl zfs_xattr
178	atf_set "require.progs"  runat
179}
180zfs_acl_find_002_neg_body()
181{
182	. $(atf_get_srcdir)/../../../include/default.cfg
183	. $(atf_get_srcdir)/../acl.cfg
184
185	verify_disk_count "$DISKS" 1
186	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
187	ksh93 $(atf_get_srcdir)/zfs_acl_find_002_neg.ksh || atf_fail "Testcase failed"
188}
189zfs_acl_find_002_neg_cleanup()
190{
191	. $(atf_get_srcdir)/../../../include/default.cfg
192	. $(atf_get_srcdir)/../acl.cfg
193
194	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
195}
196
197
198atf_test_case zfs_acl_ls_001_pos cleanup
199zfs_acl_ls_001_pos_head()
200{
201	atf_set "descr" "Verifies that ls displays @ in the file permissions using ls -@for files with attribute."
202	atf_set "require.config" zfs_acl zfs_xattr
203}
204zfs_acl_ls_001_pos_body()
205{
206	. $(atf_get_srcdir)/../../../include/default.cfg
207	. $(atf_get_srcdir)/../acl.cfg
208
209	verify_disk_count "$DISKS" 1
210	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
211	ksh93 $(atf_get_srcdir)/zfs_acl_ls_001_pos.ksh || atf_fail "Testcase failed"
212}
213zfs_acl_ls_001_pos_cleanup()
214{
215	. $(atf_get_srcdir)/../../../include/default.cfg
216	. $(atf_get_srcdir)/../acl.cfg
217
218	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
219}
220
221
222atf_test_case zfs_acl_ls_002_neg cleanup
223zfs_acl_ls_002_neg_head()
224{
225	atf_set "descr" "Verifies that ls doesn't display @ in the filepermissions using ls -@ for files without attribute."
226	atf_set "require.config" zfs_acl zfs_xattr
227	atf_set "require.progs"  runat
228}
229zfs_acl_ls_002_neg_body()
230{
231	. $(atf_get_srcdir)/../../../include/default.cfg
232	. $(atf_get_srcdir)/../acl.cfg
233
234	verify_disk_count "$DISKS" 1
235	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
236	ksh93 $(atf_get_srcdir)/zfs_acl_ls_002_neg.ksh || atf_fail "Testcase failed"
237}
238zfs_acl_ls_002_neg_cleanup()
239{
240	. $(atf_get_srcdir)/../../../include/default.cfg
241	. $(atf_get_srcdir)/../acl.cfg
242
243	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
244}
245
246
247atf_test_case zfs_acl_mv_001_pos cleanup
248zfs_acl_mv_001_pos_head()
249{
250	atf_set "descr" "Verifies that mv will include file attribute."
251	atf_set "require.config" zfs_acl zfs_xattr
252}
253zfs_acl_mv_001_pos_body()
254{
255	. $(atf_get_srcdir)/../../../include/default.cfg
256	. $(atf_get_srcdir)/../acl.cfg
257
258	verify_disk_count "$DISKS" 1
259	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
260	ksh93 $(atf_get_srcdir)/zfs_acl_mv_001_pos.ksh || atf_fail "Testcase failed"
261}
262zfs_acl_mv_001_pos_cleanup()
263{
264	. $(atf_get_srcdir)/../../../include/default.cfg
265	. $(atf_get_srcdir)/../acl.cfg
266
267	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
268}
269
270
271atf_test_case zfs_acl_pack_001_pos cleanup
272zfs_acl_pack_001_pos_head()
273{
274	atf_set "descr" "Verifies that pack will keep file attribute intact after the fileis packed and unpacked"
275	atf_set "require.config" zfs_acl zfs_xattr
276	atf_set "require.progs"  unpack pack
277}
278zfs_acl_pack_001_pos_body()
279{
280	. $(atf_get_srcdir)/../../../include/default.cfg
281	. $(atf_get_srcdir)/../acl.cfg
282
283	verify_disk_count "$DISKS" 1
284	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
285	ksh93 $(atf_get_srcdir)/zfs_acl_pack_001_pos.ksh || atf_fail "Testcase failed"
286}
287zfs_acl_pack_001_pos_cleanup()
288{
289	. $(atf_get_srcdir)/../../../include/default.cfg
290	. $(atf_get_srcdir)/../acl.cfg
291
292	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
293}
294
295
296atf_test_case zfs_acl_pax_001_pos cleanup
297zfs_acl_pax_001_pos_head()
298{
299	atf_set "descr" "Verify include attribute in pax archive and restore with paxshould succeed."
300	atf_set "require.config" zfs_acl zfs_xattr
301	atf_set "require.progs"  pax
302}
303zfs_acl_pax_001_pos_body()
304{
305	. $(atf_get_srcdir)/../../../include/default.cfg
306	. $(atf_get_srcdir)/../acl.cfg
307
308	verify_disk_count "$DISKS" 1
309	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
310	ksh93 $(atf_get_srcdir)/zfs_acl_pax_001_pos.ksh || atf_fail "Testcase failed"
311}
312zfs_acl_pax_001_pos_cleanup()
313{
314	. $(atf_get_srcdir)/../../../include/default.cfg
315	. $(atf_get_srcdir)/../acl.cfg
316
317	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
318}
319
320
321atf_test_case zfs_acl_pax_002_pos cleanup
322zfs_acl_pax_002_pos_head()
323{
324	atf_set "descr" "Verify include attribute in pax archive and restore with tarshould succeed."
325	atf_set "require.config" zfs_acl zfs_xattr
326	atf_set "require.progs"  pax
327}
328zfs_acl_pax_002_pos_body()
329{
330	. $(atf_get_srcdir)/../../../include/default.cfg
331	. $(atf_get_srcdir)/../acl.cfg
332
333	verify_disk_count "$DISKS" 1
334	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
335	ksh93 $(atf_get_srcdir)/zfs_acl_pax_002_pos.ksh || atf_fail "Testcase failed"
336}
337zfs_acl_pax_002_pos_cleanup()
338{
339	. $(atf_get_srcdir)/../../../include/default.cfg
340	. $(atf_get_srcdir)/../acl.cfg
341
342	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
343}
344
345
346atf_test_case zfs_acl_pax_003_pos cleanup
347zfs_acl_pax_003_pos_head()
348{
349	atf_set "descr" "Verify include attribute in pax archive and restore with cpioshould succeed."
350	atf_set "require.config" zfs_acl zfs_xattr
351	atf_set "require.progs"  pax
352}
353zfs_acl_pax_003_pos_body()
354{
355	. $(atf_get_srcdir)/../../../include/default.cfg
356	. $(atf_get_srcdir)/../acl.cfg
357
358	verify_disk_count "$DISKS" 1
359	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
360	ksh93 $(atf_get_srcdir)/zfs_acl_pax_003_pos.ksh || atf_fail "Testcase failed"
361}
362zfs_acl_pax_003_pos_cleanup()
363{
364	. $(atf_get_srcdir)/../../../include/default.cfg
365	. $(atf_get_srcdir)/../acl.cfg
366
367	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
368}
369
370
371atf_test_case zfs_acl_pax_004_pos cleanup
372zfs_acl_pax_004_pos_head()
373{
374	atf_set "descr" "Verify files include attribute in pax archive and restore with paxshould succeed."
375	atf_set "require.config" zfs_acl zfs_xattr
376	atf_set "require.progs"  pax
377}
378zfs_acl_pax_004_pos_body()
379{
380	. $(atf_get_srcdir)/../../../include/default.cfg
381	. $(atf_get_srcdir)/../acl.cfg
382
383	verify_disk_count "$DISKS" 1
384	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
385	ksh93 $(atf_get_srcdir)/zfs_acl_pax_004_pos.ksh || atf_fail "Testcase failed"
386}
387zfs_acl_pax_004_pos_cleanup()
388{
389	. $(atf_get_srcdir)/../../../include/default.cfg
390	. $(atf_get_srcdir)/../acl.cfg
391
392	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
393}
394
395
396atf_test_case zfs_acl_pax_005_pos cleanup
397zfs_acl_pax_005_pos_head()
398{
399	atf_set "descr" "Verify files include attribute in cpio archive and restore withcpio should succeed."
400	atf_set "require.config" zfs_acl zfs_xattr
401	atf_set "require.progs"  pax
402}
403zfs_acl_pax_005_pos_body()
404{
405	. $(atf_get_srcdir)/../../../include/default.cfg
406	. $(atf_get_srcdir)/../acl.cfg
407
408	verify_disk_count "$DISKS" 1
409	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
410	ksh93 $(atf_get_srcdir)/zfs_acl_pax_005_pos.ksh || atf_fail "Testcase failed"
411}
412zfs_acl_pax_005_pos_cleanup()
413{
414	. $(atf_get_srcdir)/../../../include/default.cfg
415	. $(atf_get_srcdir)/../acl.cfg
416
417	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
418}
419
420
421atf_test_case zfs_acl_pax_006_pos cleanup
422zfs_acl_pax_006_pos_head()
423{
424	atf_set "descr" "Verify files include attribute in tar archive and restore withtar should succeed."
425	atf_set "require.config" zfs_acl zfs_xattr
426	atf_set "require.progs"  pax
427}
428zfs_acl_pax_006_pos_body()
429{
430	. $(atf_get_srcdir)/../../../include/default.cfg
431	. $(atf_get_srcdir)/../acl.cfg
432
433	verify_disk_count "$DISKS" 1
434	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
435	ksh93 $(atf_get_srcdir)/zfs_acl_pax_006_pos.ksh || atf_fail "Testcase failed"
436}
437zfs_acl_pax_006_pos_cleanup()
438{
439	. $(atf_get_srcdir)/../../../include/default.cfg
440	. $(atf_get_srcdir)/../acl.cfg
441
442	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
443}
444
445
446atf_test_case zfs_acl_tar_001_pos cleanup
447zfs_acl_tar_001_pos_head()
448{
449	atf_set "descr" "Verifies that tar will include file attribute when @ flag ispresent."
450	atf_set "require.config" zfs_acl zfs_xattr
451}
452zfs_acl_tar_001_pos_body()
453{
454	. $(atf_get_srcdir)/../../../include/default.cfg
455	. $(atf_get_srcdir)/../acl.cfg
456
457	verify_disk_count "$DISKS" 1
458	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
459	ksh93 $(atf_get_srcdir)/zfs_acl_tar_001_pos.ksh || atf_fail "Testcase failed"
460}
461zfs_acl_tar_001_pos_cleanup()
462{
463	. $(atf_get_srcdir)/../../../include/default.cfg
464	. $(atf_get_srcdir)/../acl.cfg
465
466	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
467}
468
469
470atf_test_case zfs_acl_tar_002_neg cleanup
471zfs_acl_tar_002_neg_head()
472{
473	atf_set "descr" "Verifies that tar will not include files attribute when @ flag isnot present"
474	atf_set "require.config" zfs_acl zfs_xattr
475}
476zfs_acl_tar_002_neg_body()
477{
478	. $(atf_get_srcdir)/../../../include/default.cfg
479	. $(atf_get_srcdir)/../acl.cfg
480
481	verify_disk_count "$DISKS" 1
482	ksh93 $(atf_get_srcdir)/../setup.ksh || atf_fail "Setup failed"
483	ksh93 $(atf_get_srcdir)/zfs_acl_tar_002_neg.ksh || atf_fail "Testcase failed"
484}
485zfs_acl_tar_002_neg_cleanup()
486{
487	. $(atf_get_srcdir)/../../../include/default.cfg
488	. $(atf_get_srcdir)/../acl.cfg
489
490	ksh93 $(atf_get_srcdir)/../cleanup.ksh || atf_fail "Cleanup failed"
491}
492
493
494atf_init_test_cases()
495{
496
497	atf_add_test_case zfs_acl_chmod_001_pos
498	atf_add_test_case zfs_acl_compress_001_pos
499	atf_add_test_case zfs_acl_cp_001_pos
500	atf_add_test_case zfs_acl_cp_002_neg
501	atf_add_test_case zfs_acl_cp_003_neg
502	atf_add_test_case zfs_acl_find_001_pos
503	atf_add_test_case zfs_acl_find_002_neg
504	atf_add_test_case zfs_acl_ls_001_pos
505	atf_add_test_case zfs_acl_ls_002_neg
506	atf_add_test_case zfs_acl_mv_001_pos
507	atf_add_test_case zfs_acl_pack_001_pos
508	atf_add_test_case zfs_acl_pax_001_pos
509	atf_add_test_case zfs_acl_pax_002_pos
510	atf_add_test_case zfs_acl_pax_003_pos
511	atf_add_test_case zfs_acl_pax_004_pos
512	atf_add_test_case zfs_acl_pax_005_pos
513	atf_add_test_case zfs_acl_pax_006_pos
514	atf_add_test_case zfs_acl_tar_001_pos
515	atf_add_test_case zfs_acl_tar_002_neg
516}
517