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 reservation_001_pos cleanup 30reservation_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} 35reservation_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} 45reservation_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 55atf_test_case reservation_002_pos cleanup 56reservation_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} 61reservation_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} 71reservation_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 81atf_test_case reservation_003_pos cleanup 82reservation_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} 87reservation_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} 97reservation_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 107atf_test_case reservation_004_pos cleanup 108reservation_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} 113reservation_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} 123reservation_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 133atf_test_case reservation_005_pos cleanup 134reservation_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} 139reservation_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} 149reservation_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 159atf_test_case reservation_006_pos cleanup 160reservation_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} 165reservation_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} 175reservation_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 185atf_test_case reservation_007_pos cleanup 186reservation_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} 191reservation_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} 201reservation_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 211atf_test_case reservation_008_pos cleanup 212reservation_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} 218reservation_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} 228reservation_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 238atf_test_case reservation_009_pos cleanup 239reservation_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} 245reservation_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} 255reservation_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 265atf_test_case reservation_010_pos cleanup 266reservation_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} 272reservation_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} 282reservation_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 292atf_test_case reservation_011_pos cleanup 293reservation_011_pos_head() 294{ 295 atf_set "descr" "Verify reservation settings do not affect quota settings" 296 atf_set "require.progs" zfs 297} 298reservation_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} 308reservation_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 318atf_test_case reservation_012_pos cleanup 319reservation_012_pos_head() 320{ 321 atf_set "descr" "Verify reservations protect space" 322 atf_set "require.progs" zfs 323 atf_set "timeout" 600 324} 325reservation_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} 335reservation_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 345atf_test_case reservation_013_pos cleanup 346reservation_013_pos_head() 347{ 348 atf_set "descr" "Reservation properties preserved across exports and imports" 349 atf_set "require.progs" zfs zpool 350} 351reservation_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} 361reservation_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 371atf_test_case reservation_014_pos cleanup 372reservation_014_pos_head() 373{ 374 atf_set "descr" "Verify cannot set reservation larger than quota" 375 atf_set "require.progs" zfs 376} 377reservation_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} 387reservation_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 397atf_test_case reservation_015_pos cleanup 398reservation_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} 404reservation_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} 414reservation_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 424atf_test_case reservation_016_pos cleanup 425reservation_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} 431reservation_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} 441reservation_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 451atf_test_case reservation_017_pos cleanup 452reservation_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} 457reservation_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} 467reservation_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 477atf_test_case reservation_018_pos cleanup 478reservation_018_pos_head() 479{ 480 atf_set "descr" "Verify that reservation doesnot inherit its value from parent." 481 atf_set "require.progs" zfs 482} 483reservation_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} 493reservation_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 503atf_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} 525