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.
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.
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]
24 # Copyright 2012 Spectra Logic. All rights reserved.
25 # Use is subject to license terms.
29 atf_test_case reservation_001_pos cleanup
30 reservation_001_pos_head()
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
35 reservation_001_pos_body()
37 . $(atf_get_srcdir)/../../include/default.cfg
38 . $(atf_get_srcdir)/reservation.kshlib
39 . $(atf_get_srcdir)/reservation.cfg
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"
45 reservation_001_pos_cleanup()
47 . $(atf_get_srcdir)/../../include/default.cfg
48 . $(atf_get_srcdir)/reservation.kshlib
49 . $(atf_get_srcdir)/reservation.cfg
51 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
55 atf_test_case reservation_002_pos cleanup
56 reservation_002_pos_head()
58 atf_set "descr" "Reservation values cannot exceed the amount of space available in the pool"
59 atf_set "require.progs" zfs
61 reservation_002_pos_body()
63 . $(atf_get_srcdir)/../../include/default.cfg
64 . $(atf_get_srcdir)/reservation.kshlib
65 . $(atf_get_srcdir)/reservation.cfg
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"
71 reservation_002_pos_cleanup()
73 . $(atf_get_srcdir)/../../include/default.cfg
74 . $(atf_get_srcdir)/reservation.kshlib
75 . $(atf_get_srcdir)/reservation.cfg
77 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
81 atf_test_case reservation_003_pos cleanup
82 reservation_003_pos_head()
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
87 reservation_003_pos_body()
89 . $(atf_get_srcdir)/../../include/default.cfg
90 . $(atf_get_srcdir)/reservation.kshlib
91 . $(atf_get_srcdir)/reservation.cfg
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"
97 reservation_003_pos_cleanup()
99 . $(atf_get_srcdir)/../../include/default.cfg
100 . $(atf_get_srcdir)/reservation.kshlib
101 . $(atf_get_srcdir)/reservation.cfg
103 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
107 atf_test_case reservation_004_pos cleanup
108 reservation_004_pos_head()
110 atf_set "descr" "Verify space released when a dataset with reservation is destroyed"
111 atf_set "require.progs" zfs
113 reservation_004_pos_body()
115 . $(atf_get_srcdir)/../../include/default.cfg
116 . $(atf_get_srcdir)/reservation.kshlib
117 . $(atf_get_srcdir)/reservation.cfg
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"
123 reservation_004_pos_cleanup()
125 . $(atf_get_srcdir)/../../include/default.cfg
126 . $(atf_get_srcdir)/reservation.kshlib
127 . $(atf_get_srcdir)/reservation.cfg
129 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
133 atf_test_case reservation_005_pos cleanup
134 reservation_005_pos_head()
136 atf_set "descr" "Verify space released when reservation on a dataset is setto 'none'"
137 atf_set "require.progs" zfs
139 reservation_005_pos_body()
141 . $(atf_get_srcdir)/../../include/default.cfg
142 . $(atf_get_srcdir)/reservation.kshlib
143 . $(atf_get_srcdir)/reservation.cfg
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"
149 reservation_005_pos_cleanup()
151 . $(atf_get_srcdir)/../../include/default.cfg
152 . $(atf_get_srcdir)/reservation.kshlib
153 . $(atf_get_srcdir)/reservation.cfg
155 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
159 atf_test_case reservation_006_pos cleanup
160 reservation_006_pos_head()
162 atf_set "descr" "Verify can create files both inside and outside reserved areas"
163 atf_set "require.progs" zfs
165 reservation_006_pos_body()
167 . $(atf_get_srcdir)/../../include/default.cfg
168 . $(atf_get_srcdir)/reservation.kshlib
169 . $(atf_get_srcdir)/reservation.cfg
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"
175 reservation_006_pos_cleanup()
177 . $(atf_get_srcdir)/../../include/default.cfg
178 . $(atf_get_srcdir)/reservation.kshlib
179 . $(atf_get_srcdir)/reservation.cfg
181 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
185 atf_test_case reservation_007_pos cleanup
186 reservation_007_pos_head()
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
191 reservation_007_pos_body()
193 . $(atf_get_srcdir)/../../include/default.cfg
194 . $(atf_get_srcdir)/reservation.kshlib
195 . $(atf_get_srcdir)/reservation.cfg
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"
201 reservation_007_pos_cleanup()
203 . $(atf_get_srcdir)/../../include/default.cfg
204 . $(atf_get_srcdir)/reservation.kshlib
205 . $(atf_get_srcdir)/reservation.cfg
207 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
211 atf_test_case reservation_008_pos cleanup
212 reservation_008_pos_head()
214 atf_set "descr" "Verify reducing reservation allows other datasets to use space"
215 atf_set "require.progs" zfs
216 atf_set "timeout" 600
218 reservation_008_pos_body()
220 . $(atf_get_srcdir)/../../include/default.cfg
221 . $(atf_get_srcdir)/reservation.kshlib
222 . $(atf_get_srcdir)/reservation.cfg
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"
228 reservation_008_pos_cleanup()
230 . $(atf_get_srcdir)/../../include/default.cfg
231 . $(atf_get_srcdir)/reservation.kshlib
232 . $(atf_get_srcdir)/reservation.cfg
234 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
238 atf_test_case reservation_009_pos cleanup
239 reservation_009_pos_head()
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
245 reservation_009_pos_body()
247 . $(atf_get_srcdir)/../../include/default.cfg
248 . $(atf_get_srcdir)/reservation.kshlib
249 . $(atf_get_srcdir)/reservation.cfg
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"
255 reservation_009_pos_cleanup()
257 . $(atf_get_srcdir)/../../include/default.cfg
258 . $(atf_get_srcdir)/reservation.kshlib
259 . $(atf_get_srcdir)/reservation.cfg
261 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
265 atf_test_case reservation_010_pos cleanup
266 reservation_010_pos_head()
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
272 reservation_010_pos_body()
274 . $(atf_get_srcdir)/../../include/default.cfg
275 . $(atf_get_srcdir)/reservation.kshlib
276 . $(atf_get_srcdir)/reservation.cfg
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"
282 reservation_010_pos_cleanup()
284 . $(atf_get_srcdir)/../../include/default.cfg
285 . $(atf_get_srcdir)/reservation.kshlib
286 . $(atf_get_srcdir)/reservation.cfg
288 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
292 atf_test_case reservation_011_pos cleanup
293 reservation_011_pos_head()
295 atf_set "descr" "Verify reservation settings do not affect quota settings"
296 atf_set "require.progs" zfs
298 reservation_011_pos_body()
300 . $(atf_get_srcdir)/../../include/default.cfg
301 . $(atf_get_srcdir)/reservation.kshlib
302 . $(atf_get_srcdir)/reservation.cfg
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"
308 reservation_011_pos_cleanup()
310 . $(atf_get_srcdir)/../../include/default.cfg
311 . $(atf_get_srcdir)/reservation.kshlib
312 . $(atf_get_srcdir)/reservation.cfg
314 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
318 atf_test_case reservation_012_pos cleanup
319 reservation_012_pos_head()
321 atf_set "descr" "Verify reservations protect space"
322 atf_set "require.progs" zfs
323 atf_set "timeout" 600
325 reservation_012_pos_body()
327 . $(atf_get_srcdir)/../../include/default.cfg
328 . $(atf_get_srcdir)/reservation.kshlib
329 . $(atf_get_srcdir)/reservation.cfg
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"
335 reservation_012_pos_cleanup()
337 . $(atf_get_srcdir)/../../include/default.cfg
338 . $(atf_get_srcdir)/reservation.kshlib
339 . $(atf_get_srcdir)/reservation.cfg
341 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
345 atf_test_case reservation_013_pos cleanup
346 reservation_013_pos_head()
348 atf_set "descr" "Reservation properties preserved across exports and imports"
349 atf_set "require.progs" zfs zpool
351 reservation_013_pos_body()
353 . $(atf_get_srcdir)/../../include/default.cfg
354 . $(atf_get_srcdir)/reservation.kshlib
355 . $(atf_get_srcdir)/reservation.cfg
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"
361 reservation_013_pos_cleanup()
363 . $(atf_get_srcdir)/../../include/default.cfg
364 . $(atf_get_srcdir)/reservation.kshlib
365 . $(atf_get_srcdir)/reservation.cfg
367 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
371 atf_test_case reservation_014_pos cleanup
372 reservation_014_pos_head()
374 atf_set "descr" "Verify cannot set reservation larger than quota"
375 atf_set "require.progs" zfs
377 reservation_014_pos_body()
379 . $(atf_get_srcdir)/../../include/default.cfg
380 . $(atf_get_srcdir)/reservation.kshlib
381 . $(atf_get_srcdir)/reservation.cfg
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"
387 reservation_014_pos_cleanup()
389 . $(atf_get_srcdir)/../../include/default.cfg
390 . $(atf_get_srcdir)/reservation.kshlib
391 . $(atf_get_srcdir)/reservation.cfg
393 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
397 atf_test_case reservation_015_pos cleanup
398 reservation_015_pos_head()
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
404 reservation_015_pos_body()
406 . $(atf_get_srcdir)/../../include/default.cfg
407 . $(atf_get_srcdir)/reservation.kshlib
408 . $(atf_get_srcdir)/reservation.cfg
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"
414 reservation_015_pos_cleanup()
416 . $(atf_get_srcdir)/../../include/default.cfg
417 . $(atf_get_srcdir)/reservation.kshlib
418 . $(atf_get_srcdir)/reservation.cfg
420 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
424 atf_test_case reservation_016_pos cleanup
425 reservation_016_pos_head()
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
431 reservation_016_pos_body()
433 . $(atf_get_srcdir)/../../include/default.cfg
434 . $(atf_get_srcdir)/reservation.kshlib
435 . $(atf_get_srcdir)/reservation.cfg
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"
441 reservation_016_pos_cleanup()
443 . $(atf_get_srcdir)/../../include/default.cfg
444 . $(atf_get_srcdir)/reservation.kshlib
445 . $(atf_get_srcdir)/reservation.cfg
447 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
451 atf_test_case reservation_017_pos cleanup
452 reservation_017_pos_head()
454 atf_set "descr" "Verify that the volsize changes of sparse volume are not reflectedin the reservation"
455 atf_set "require.progs" zfs
457 reservation_017_pos_body()
459 . $(atf_get_srcdir)/../../include/default.cfg
460 . $(atf_get_srcdir)/reservation.kshlib
461 . $(atf_get_srcdir)/reservation.cfg
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"
467 reservation_017_pos_cleanup()
469 . $(atf_get_srcdir)/../../include/default.cfg
470 . $(atf_get_srcdir)/reservation.kshlib
471 . $(atf_get_srcdir)/reservation.cfg
473 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
477 atf_test_case reservation_018_pos cleanup
478 reservation_018_pos_head()
480 atf_set "descr" "Verify that reservation doesnot inherit its value from parent."
481 atf_set "require.progs" zfs
483 reservation_018_pos_body()
485 . $(atf_get_srcdir)/../../include/default.cfg
486 . $(atf_get_srcdir)/reservation.kshlib
487 . $(atf_get_srcdir)/reservation.cfg
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"
493 reservation_018_pos_cleanup()
495 . $(atf_get_srcdir)/../../include/default.cfg
496 . $(atf_get_srcdir)/reservation.kshlib
497 . $(atf_get_srcdir)/reservation.cfg
499 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
503 atf_init_test_cases()
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