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