]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tests/sys/cddl/zfs/tests/reservation/reservation_test.sh
MFV r344878:
[FreeBSD/FreeBSD.git] / tests / sys / cddl / zfs / tests / reservation / reservation_test.sh
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
29 atf_test_case reservation_001_pos cleanup
30 reservation_001_pos_head()
31 {
32         atf_set "descr" "Verify that to set a reservation on a filesystem or volume must use value smaller than space \ available property of pool"
33         atf_set "require.progs"  zfs
34 }
35 reservation_001_pos_body()
36 {
37         . $(atf_get_srcdir)/../../include/default.cfg
38         . $(atf_get_srcdir)/reservation.kshlib
39         . $(atf_get_srcdir)/reservation.cfg
40
41         verify_disk_count "$DISKS" 1
42         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
43         ksh93 $(atf_get_srcdir)/reservation_001_pos.ksh || atf_fail "Testcase failed"
44 }
45 reservation_001_pos_cleanup()
46 {
47         . $(atf_get_srcdir)/../../include/default.cfg
48         . $(atf_get_srcdir)/reservation.kshlib
49         . $(atf_get_srcdir)/reservation.cfg
50
51         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
52 }
53
54
55 atf_test_case reservation_002_pos cleanup
56 reservation_002_pos_head()
57 {
58         atf_set "descr" "Reservation values cannot exceed the amount of space available in the pool"
59         atf_set "require.progs"  zfs
60 }
61 reservation_002_pos_body()
62 {
63         . $(atf_get_srcdir)/../../include/default.cfg
64         . $(atf_get_srcdir)/reservation.kshlib
65         . $(atf_get_srcdir)/reservation.cfg
66
67         verify_disk_count "$DISKS" 1
68         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
69         ksh93 $(atf_get_srcdir)/reservation_002_pos.ksh || atf_fail "Testcase failed"
70 }
71 reservation_002_pos_cleanup()
72 {
73         . $(atf_get_srcdir)/../../include/default.cfg
74         . $(atf_get_srcdir)/reservation.kshlib
75         . $(atf_get_srcdir)/reservation.cfg
76
77         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
78 }
79
80
81 atf_test_case reservation_003_pos cleanup
82 reservation_003_pos_head()
83 {
84         atf_set "descr" "Verify it is possible to set reservations multiple times on a filesystem regular and sparse volume"
85         atf_set "require.progs"  zfs
86 }
87 reservation_003_pos_body()
88 {
89         . $(atf_get_srcdir)/../../include/default.cfg
90         . $(atf_get_srcdir)/reservation.kshlib
91         . $(atf_get_srcdir)/reservation.cfg
92
93         verify_disk_count "$DISKS" 1
94         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
95         ksh93 $(atf_get_srcdir)/reservation_003_pos.ksh || atf_fail "Testcase failed"
96 }
97 reservation_003_pos_cleanup()
98 {
99         . $(atf_get_srcdir)/../../include/default.cfg
100         . $(atf_get_srcdir)/reservation.kshlib
101         . $(atf_get_srcdir)/reservation.cfg
102
103         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
104 }
105
106
107 atf_test_case reservation_004_pos cleanup
108 reservation_004_pos_head()
109 {
110         atf_set "descr" "Verify space released when a dataset with reservation is destroyed"
111         atf_set "require.progs"  zfs
112 }
113 reservation_004_pos_body()
114 {
115         . $(atf_get_srcdir)/../../include/default.cfg
116         . $(atf_get_srcdir)/reservation.kshlib
117         . $(atf_get_srcdir)/reservation.cfg
118
119         verify_disk_count "$DISKS" 1
120         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
121         ksh93 $(atf_get_srcdir)/reservation_004_pos.ksh || atf_fail "Testcase failed"
122 }
123 reservation_004_pos_cleanup()
124 {
125         . $(atf_get_srcdir)/../../include/default.cfg
126         . $(atf_get_srcdir)/reservation.kshlib
127         . $(atf_get_srcdir)/reservation.cfg
128
129         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
130 }
131
132
133 atf_test_case reservation_005_pos cleanup
134 reservation_005_pos_head()
135 {
136         atf_set "descr" "Verify space released when reservation on a dataset is setto 'none'"
137         atf_set "require.progs"  zfs
138 }
139 reservation_005_pos_body()
140 {
141         . $(atf_get_srcdir)/../../include/default.cfg
142         . $(atf_get_srcdir)/reservation.kshlib
143         . $(atf_get_srcdir)/reservation.cfg
144
145         verify_disk_count "$DISKS" 1
146         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
147         ksh93 $(atf_get_srcdir)/reservation_005_pos.ksh || atf_fail "Testcase failed"
148 }
149 reservation_005_pos_cleanup()
150 {
151         . $(atf_get_srcdir)/../../include/default.cfg
152         . $(atf_get_srcdir)/reservation.kshlib
153         . $(atf_get_srcdir)/reservation.cfg
154
155         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
156 }
157
158
159 atf_test_case reservation_006_pos cleanup
160 reservation_006_pos_head()
161 {
162         atf_set "descr" "Verify can create files both inside and outside reserved areas"
163         atf_set "require.progs"  zfs
164 }
165 reservation_006_pos_body()
166 {
167         . $(atf_get_srcdir)/../../include/default.cfg
168         . $(atf_get_srcdir)/reservation.kshlib
169         . $(atf_get_srcdir)/reservation.cfg
170
171         verify_disk_count "$DISKS" 1
172         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
173         ksh93 $(atf_get_srcdir)/reservation_006_pos.ksh || atf_fail "Testcase failed"
174 }
175 reservation_006_pos_cleanup()
176 {
177         . $(atf_get_srcdir)/../../include/default.cfg
178         . $(atf_get_srcdir)/reservation.kshlib
179         . $(atf_get_srcdir)/reservation.cfg
180
181         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
182 }
183
184
185 atf_test_case reservation_007_pos cleanup
186 reservation_007_pos_head()
187 {
188         atf_set "descr" "Verify reservations on data sets doesn't affect other data sets at same level except for consuming space from common pool"
189         atf_set "require.progs"  zfs
190 }
191 reservation_007_pos_body()
192 {
193         . $(atf_get_srcdir)/../../include/default.cfg
194         . $(atf_get_srcdir)/reservation.kshlib
195         . $(atf_get_srcdir)/reservation.cfg
196
197         verify_disk_count "$DISKS" 1
198         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
199         ksh93 $(atf_get_srcdir)/reservation_007_pos.ksh || atf_fail "Testcase failed"
200 }
201 reservation_007_pos_cleanup()
202 {
203         . $(atf_get_srcdir)/../../include/default.cfg
204         . $(atf_get_srcdir)/reservation.kshlib
205         . $(atf_get_srcdir)/reservation.cfg
206
207         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
208 }
209
210
211 atf_test_case reservation_008_pos cleanup
212 reservation_008_pos_head()
213 {
214         atf_set "descr" "Verify reducing reservation allows other datasets to use space"
215         atf_set "require.progs"  zfs
216         atf_set "timeout" 600
217 }
218 reservation_008_pos_body()
219 {
220         . $(atf_get_srcdir)/../../include/default.cfg
221         . $(atf_get_srcdir)/reservation.kshlib
222         . $(atf_get_srcdir)/reservation.cfg
223
224         verify_disk_count "$DISKS" 1
225         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
226         ksh93 $(atf_get_srcdir)/reservation_008_pos.ksh || atf_fail "Testcase failed"
227 }
228 reservation_008_pos_cleanup()
229 {
230         . $(atf_get_srcdir)/../../include/default.cfg
231         . $(atf_get_srcdir)/reservation.kshlib
232         . $(atf_get_srcdir)/reservation.cfg
233
234         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
235 }
236
237
238 atf_test_case reservation_009_pos cleanup
239 reservation_009_pos_head()
240 {
241         atf_set "descr" "Setting top level dataset reservation to 'none' allows more data to be written to top level filesystem"
242         atf_set "require.progs"  zfs
243         atf_set "timeout" 600
244 }
245 reservation_009_pos_body()
246 {
247         . $(atf_get_srcdir)/../../include/default.cfg
248         . $(atf_get_srcdir)/reservation.kshlib
249         . $(atf_get_srcdir)/reservation.cfg
250
251         verify_disk_count "$DISKS" 1
252         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
253         ksh93 $(atf_get_srcdir)/reservation_009_pos.ksh || atf_fail "Testcase failed"
254 }
255 reservation_009_pos_cleanup()
256 {
257         . $(atf_get_srcdir)/../../include/default.cfg
258         . $(atf_get_srcdir)/reservation.kshlib
259         . $(atf_get_srcdir)/reservation.cfg
260
261         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
262 }
263
264
265 atf_test_case reservation_010_pos cleanup
266 reservation_010_pos_head()
267 {
268         atf_set "descr" "Destroying top level filesystem with reservation allows more data to be written to another top level filesystem"
269         atf_set "require.progs"  zfs
270         atf_set "timeout" 600
271 }
272 reservation_010_pos_body()
273 {
274         . $(atf_get_srcdir)/../../include/default.cfg
275         . $(atf_get_srcdir)/reservation.kshlib
276         . $(atf_get_srcdir)/reservation.cfg
277
278         verify_disk_count "$DISKS" 1
279         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
280         ksh93 $(atf_get_srcdir)/reservation_010_pos.ksh || atf_fail "Testcase failed"
281 }
282 reservation_010_pos_cleanup()
283 {
284         . $(atf_get_srcdir)/../../include/default.cfg
285         . $(atf_get_srcdir)/reservation.kshlib
286         . $(atf_get_srcdir)/reservation.cfg
287
288         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
289 }
290
291
292 atf_test_case reservation_011_pos cleanup
293 reservation_011_pos_head()
294 {
295         atf_set "descr" "Verify reservation settings do not affect quota settings"
296         atf_set "require.progs"  zfs
297 }
298 reservation_011_pos_body()
299 {
300         . $(atf_get_srcdir)/../../include/default.cfg
301         . $(atf_get_srcdir)/reservation.kshlib
302         . $(atf_get_srcdir)/reservation.cfg
303
304         verify_disk_count "$DISKS" 1
305         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
306         ksh93 $(atf_get_srcdir)/reservation_011_pos.ksh || atf_fail "Testcase failed"
307 }
308 reservation_011_pos_cleanup()
309 {
310         . $(atf_get_srcdir)/../../include/default.cfg
311         . $(atf_get_srcdir)/reservation.kshlib
312         . $(atf_get_srcdir)/reservation.cfg
313
314         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
315 }
316
317
318 atf_test_case reservation_012_pos cleanup
319 reservation_012_pos_head()
320 {
321         atf_set "descr" "Verify reservations protect space"
322         atf_set "require.progs"  zfs
323         atf_set "timeout" 600
324 }
325 reservation_012_pos_body()
326 {
327         . $(atf_get_srcdir)/../../include/default.cfg
328         . $(atf_get_srcdir)/reservation.kshlib
329         . $(atf_get_srcdir)/reservation.cfg
330
331         verify_disk_count "$DISKS" 1
332         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
333         ksh93 $(atf_get_srcdir)/reservation_012_pos.ksh || atf_fail "Testcase failed"
334 }
335 reservation_012_pos_cleanup()
336 {
337         . $(atf_get_srcdir)/../../include/default.cfg
338         . $(atf_get_srcdir)/reservation.kshlib
339         . $(atf_get_srcdir)/reservation.cfg
340
341         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
342 }
343
344
345 atf_test_case reservation_013_pos cleanup
346 reservation_013_pos_head()
347 {
348         atf_set "descr" "Reservation properties preserved across exports and imports"
349         atf_set "require.progs"  zfs zpool
350 }
351 reservation_013_pos_body()
352 {
353         . $(atf_get_srcdir)/../../include/default.cfg
354         . $(atf_get_srcdir)/reservation.kshlib
355         . $(atf_get_srcdir)/reservation.cfg
356
357         verify_disk_count "$DISKS" 1
358         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
359         ksh93 $(atf_get_srcdir)/reservation_013_pos.ksh || atf_fail "Testcase failed"
360 }
361 reservation_013_pos_cleanup()
362 {
363         . $(atf_get_srcdir)/../../include/default.cfg
364         . $(atf_get_srcdir)/reservation.kshlib
365         . $(atf_get_srcdir)/reservation.cfg
366
367         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
368 }
369
370
371 atf_test_case reservation_014_pos cleanup
372 reservation_014_pos_head()
373 {
374         atf_set "descr" "Verify cannot set reservation larger than quota"
375         atf_set "require.progs"  zfs
376 }
377 reservation_014_pos_body()
378 {
379         . $(atf_get_srcdir)/../../include/default.cfg
380         . $(atf_get_srcdir)/reservation.kshlib
381         . $(atf_get_srcdir)/reservation.cfg
382
383         verify_disk_count "$DISKS" 1
384         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
385         ksh93 $(atf_get_srcdir)/reservation_014_pos.ksh || atf_fail "Testcase failed"
386 }
387 reservation_014_pos_cleanup()
388 {
389         . $(atf_get_srcdir)/../../include/default.cfg
390         . $(atf_get_srcdir)/reservation.kshlib
391         . $(atf_get_srcdir)/reservation.cfg
392
393         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
394 }
395
396
397 atf_test_case reservation_015_pos cleanup
398 reservation_015_pos_head()
399 {
400         atf_set "descr" "Setting volume reservation to 'none' allows more data to be written to top level filesystem"
401         atf_set "require.progs"  zfs
402         atf_set "timeout" 600
403 }
404 reservation_015_pos_body()
405 {
406         . $(atf_get_srcdir)/../../include/default.cfg
407         . $(atf_get_srcdir)/reservation.kshlib
408         . $(atf_get_srcdir)/reservation.cfg
409
410         verify_disk_count "$DISKS" 1
411         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
412         ksh93 $(atf_get_srcdir)/reservation_015_pos.ksh || atf_fail "Testcase failed"
413 }
414 reservation_015_pos_cleanup()
415 {
416         . $(atf_get_srcdir)/../../include/default.cfg
417         . $(atf_get_srcdir)/reservation.kshlib
418         . $(atf_get_srcdir)/reservation.cfg
419
420         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
421 }
422
423
424 atf_test_case reservation_016_pos cleanup
425 reservation_016_pos_head()
426 {
427         atf_set "descr" "Destroying a regular volume with reservation allows more data to be written to top level filesystem"
428         atf_set "require.progs"  zfs
429         atf_set "timeout" 600
430 }
431 reservation_016_pos_body()
432 {
433         . $(atf_get_srcdir)/../../include/default.cfg
434         . $(atf_get_srcdir)/reservation.kshlib
435         . $(atf_get_srcdir)/reservation.cfg
436
437         verify_disk_count "$DISKS" 1
438         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
439         ksh93 $(atf_get_srcdir)/reservation_016_pos.ksh || atf_fail "Testcase failed"
440 }
441 reservation_016_pos_cleanup()
442 {
443         . $(atf_get_srcdir)/../../include/default.cfg
444         . $(atf_get_srcdir)/reservation.kshlib
445         . $(atf_get_srcdir)/reservation.cfg
446
447         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
448 }
449
450
451 atf_test_case reservation_017_pos cleanup
452 reservation_017_pos_head()
453 {
454         atf_set "descr" "Verify that the volsize changes of sparse volume are not reflectedin the reservation"
455         atf_set "require.progs"  zfs
456 }
457 reservation_017_pos_body()
458 {
459         . $(atf_get_srcdir)/../../include/default.cfg
460         . $(atf_get_srcdir)/reservation.kshlib
461         . $(atf_get_srcdir)/reservation.cfg
462
463         verify_disk_count "$DISKS" 1
464         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
465         ksh93 $(atf_get_srcdir)/reservation_017_pos.ksh || atf_fail "Testcase failed"
466 }
467 reservation_017_pos_cleanup()
468 {
469         . $(atf_get_srcdir)/../../include/default.cfg
470         . $(atf_get_srcdir)/reservation.kshlib
471         . $(atf_get_srcdir)/reservation.cfg
472
473         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
474 }
475
476
477 atf_test_case reservation_018_pos cleanup
478 reservation_018_pos_head()
479 {
480         atf_set "descr" "Verify that reservation doesnot inherit its value from parent."
481         atf_set "require.progs"  zfs
482 }
483 reservation_018_pos_body()
484 {
485         . $(atf_get_srcdir)/../../include/default.cfg
486         . $(atf_get_srcdir)/reservation.kshlib
487         . $(atf_get_srcdir)/reservation.cfg
488
489         verify_disk_count "$DISKS" 1
490         ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
491         ksh93 $(atf_get_srcdir)/reservation_018_pos.ksh || atf_fail "Testcase failed"
492 }
493 reservation_018_pos_cleanup()
494 {
495         . $(atf_get_srcdir)/../../include/default.cfg
496         . $(atf_get_srcdir)/reservation.kshlib
497         . $(atf_get_srcdir)/reservation.cfg
498
499         ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
500 }
501
502
503 atf_init_test_cases()
504 {
505
506         atf_add_test_case reservation_001_pos
507         atf_add_test_case reservation_002_pos
508         atf_add_test_case reservation_003_pos
509         atf_add_test_case reservation_004_pos
510         atf_add_test_case reservation_005_pos
511         atf_add_test_case reservation_006_pos
512         atf_add_test_case reservation_007_pos
513         atf_add_test_case reservation_008_pos
514         atf_add_test_case reservation_009_pos
515         atf_add_test_case reservation_010_pos
516         atf_add_test_case reservation_011_pos
517         atf_add_test_case reservation_012_pos
518         atf_add_test_case reservation_013_pos
519         atf_add_test_case reservation_014_pos
520         atf_add_test_case reservation_015_pos
521         atf_add_test_case reservation_016_pos
522         atf_add_test_case reservation_017_pos
523         atf_add_test_case reservation_018_pos
524 }