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 zpool_import_002_pos cleanup 30zpool_import_002_pos_head() 31{ 32 atf_set "descr" "Verify that an exported pool can be imported and cannot be imported more than once." 33 atf_set "require.progs" zfs zpool sum zdb 34 atf_set "timeout" 2400 35} 36zpool_import_002_pos_body() 37{ 38 . $(atf_get_srcdir)/../../../include/default.cfg 39 . $(atf_get_srcdir)/zpool_import.cfg 40 41 verify_disk_count "$DISKS" 2 42 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 43 ksh93 $(atf_get_srcdir)/zpool_import_002_pos.ksh || atf_fail "Testcase failed" 44} 45zpool_import_002_pos_cleanup() 46{ 47 . $(atf_get_srcdir)/../../../include/default.cfg 48 . $(atf_get_srcdir)/zpool_import.cfg 49 50 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 51} 52 53 54atf_test_case zpool_import_003_pos cleanup 55zpool_import_003_pos_head() 56{ 57 atf_set "descr" "Destroyed pools are not listed unless with -D option is specified." 58 atf_set "require.progs" zpool zfs 59 atf_set "timeout" 2400 60} 61zpool_import_003_pos_body() 62{ 63 . $(atf_get_srcdir)/../../../include/default.cfg 64 . $(atf_get_srcdir)/zpool_import.cfg 65 66 verify_disk_count "$DISKS" 2 67 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 68 ksh93 $(atf_get_srcdir)/zpool_import_003_pos.ksh || atf_fail "Testcase failed" 69} 70zpool_import_003_pos_cleanup() 71{ 72 . $(atf_get_srcdir)/../../../include/default.cfg 73 . $(atf_get_srcdir)/zpool_import.cfg 74 75 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 76} 77 78 79atf_test_case zpool_import_004_pos cleanup 80zpool_import_004_pos_head() 81{ 82 atf_set "descr" "Destroyed pools devices was moved to another directory,it still can be imported correctly." 83 atf_set "require.progs" zpool zfs zdb 84 atf_set "timeout" 2400 85} 86zpool_import_004_pos_body() 87{ 88 . $(atf_get_srcdir)/../../../include/default.cfg 89 . $(atf_get_srcdir)/zpool_import.cfg 90 91 verify_disk_count "$DISKS" 2 92 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 93 ksh93 $(atf_get_srcdir)/zpool_import_004_pos.ksh || atf_fail "Testcase failed" 94} 95zpool_import_004_pos_cleanup() 96{ 97 . $(atf_get_srcdir)/../../../include/default.cfg 98 . $(atf_get_srcdir)/zpool_import.cfg 99 100 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 101} 102 103 104atf_test_case zpool_import_005_pos cleanup 105zpool_import_005_pos_head() 106{ 107 atf_set "descr" "Destroyed pools devices was renamed, it still can be importedcorrectly." 108 atf_set "require.progs" zpool zfs zdb 109 atf_set "timeout" 2400 110} 111zpool_import_005_pos_body() 112{ 113 . $(atf_get_srcdir)/../../../include/default.cfg 114 . $(atf_get_srcdir)/zpool_import.cfg 115 116 verify_disk_count "$DISKS" 2 117 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 118 ksh93 $(atf_get_srcdir)/zpool_import_005_pos.ksh || atf_fail "Testcase failed" 119} 120zpool_import_005_pos_cleanup() 121{ 122 . $(atf_get_srcdir)/../../../include/default.cfg 123 . $(atf_get_srcdir)/zpool_import.cfg 124 125 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 126} 127 128 129atf_test_case zpool_import_006_pos cleanup 130zpool_import_006_pos_head() 131{ 132 atf_set "descr" "For mirror, N-1 destroyed pools devices was removed or usedby other pool, it still can be imported correctly." 133 atf_set "require.progs" zpool zfs zdb 134 atf_set "timeout" 2400 135} 136zpool_import_006_pos_body() 137{ 138 . $(atf_get_srcdir)/../../../include/default.cfg 139 . $(atf_get_srcdir)/zpool_import.cfg 140 141 verify_disk_count "$DISKS" 2 142 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 143 ksh93 $(atf_get_srcdir)/zpool_import_006_pos.ksh || atf_fail "Testcase failed" 144} 145zpool_import_006_pos_cleanup() 146{ 147 . $(atf_get_srcdir)/../../../include/default.cfg 148 . $(atf_get_srcdir)/zpool_import.cfg 149 150 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 151} 152 153 154atf_test_case zpool_import_007_pos cleanup 155zpool_import_007_pos_head() 156{ 157 atf_set "descr" "For raidz, one destroyed pools devices was removed or used byother pool, it still can be imported correctly." 158 atf_set "require.progs" zpool zfs zdb 159 atf_set "timeout" 2400 160} 161zpool_import_007_pos_body() 162{ 163 . $(atf_get_srcdir)/../../../include/default.cfg 164 . $(atf_get_srcdir)/zpool_import.cfg 165 166 verify_disk_count "$DISKS" 2 167 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 168 ksh93 $(atf_get_srcdir)/zpool_import_007_pos.ksh || atf_fail "Testcase failed" 169} 170zpool_import_007_pos_cleanup() 171{ 172 . $(atf_get_srcdir)/../../../include/default.cfg 173 . $(atf_get_srcdir)/zpool_import.cfg 174 175 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 176} 177 178 179atf_test_case zpool_import_008_pos cleanup 180zpool_import_008_pos_head() 181{ 182 atf_set "descr" "For raidz2, two destroyed pools devices was removed or used byother pool, it still can be imported correctly." 183 atf_set "require.progs" zpool zfs zdb 184 atf_set "timeout" 2400 185} 186zpool_import_008_pos_body() 187{ 188 . $(atf_get_srcdir)/../../../include/default.cfg 189 . $(atf_get_srcdir)/zpool_import.cfg 190 191 verify_disk_count "$DISKS" 2 192 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 193 ksh93 $(atf_get_srcdir)/zpool_import_008_pos.ksh || atf_fail "Testcase failed" 194} 195zpool_import_008_pos_cleanup() 196{ 197 . $(atf_get_srcdir)/../../../include/default.cfg 198 . $(atf_get_srcdir)/zpool_import.cfg 199 200 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 201} 202 203 204atf_test_case zpool_import_009_neg cleanup 205zpool_import_009_neg_head() 206{ 207 atf_set "descr" "Badly-formed 'zpool import' with inapplicable scenariosshould return an error." 208 atf_set "require.progs" zfs zpool 209 atf_set "timeout" 2400 210} 211zpool_import_009_neg_body() 212{ 213 . $(atf_get_srcdir)/../../../include/default.cfg 214 . $(atf_get_srcdir)/zpool_import.cfg 215 216 verify_disk_count "$DISKS" 2 217 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 218 ksh93 $(atf_get_srcdir)/zpool_import_009_neg.ksh || atf_fail "Testcase failed" 219} 220zpool_import_009_neg_cleanup() 221{ 222 . $(atf_get_srcdir)/../../../include/default.cfg 223 . $(atf_get_srcdir)/zpool_import.cfg 224 225 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 226} 227 228 229atf_test_case zpool_import_010_pos cleanup 230zpool_import_010_pos_head() 231{ 232 atf_set "descr" "'zpool -D -a' can import all the specified directoriesdestroyed pools." 233 atf_set "require.progs" zpool zfs 234 atf_set "timeout" 2400 235} 236zpool_import_010_pos_body() 237{ 238 . $(atf_get_srcdir)/../../../include/default.cfg 239 . $(atf_get_srcdir)/zpool_import.cfg 240 241 verify_disk_count "$DISKS" 2 242 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 243 ksh93 $(atf_get_srcdir)/zpool_import_010_pos.ksh || atf_fail "Testcase failed" 244} 245zpool_import_010_pos_cleanup() 246{ 247 . $(atf_get_srcdir)/../../../include/default.cfg 248 . $(atf_get_srcdir)/zpool_import.cfg 249 250 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 251} 252 253 254atf_test_case zpool_import_011_neg cleanup 255zpool_import_011_neg_head() 256{ 257 atf_set "descr" "For strip pool, any destroyed pool devices was demaged,zpool import -D will failed." 258 atf_set "require.progs" zpool zfs zdb 259 atf_set "timeout" 2400 260} 261zpool_import_011_neg_body() 262{ 263 . $(atf_get_srcdir)/../../../include/default.cfg 264 . $(atf_get_srcdir)/zpool_import.cfg 265 266 verify_disk_count "$DISKS" 2 267 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 268 ksh93 $(atf_get_srcdir)/zpool_import_011_neg.ksh || atf_fail "Testcase failed" 269} 270zpool_import_011_neg_cleanup() 271{ 272 . $(atf_get_srcdir)/../../../include/default.cfg 273 . $(atf_get_srcdir)/zpool_import.cfg 274 275 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 276} 277 278 279atf_test_case zpool_import_012_pos cleanup 280zpool_import_012_pos_head() 281{ 282 atf_set "descr" "Verify all mount & share status of sub-filesystems within a poolcan be restored after import [-Df]." 283 atf_set "require.progs" zfs zpool zdb share 284 atf_set "timeout" 2400 285} 286zpool_import_012_pos_body() 287{ 288 . $(atf_get_srcdir)/../../../include/default.cfg 289 . $(atf_get_srcdir)/zpool_import.cfg 290 291 verify_disk_count "$DISKS" 2 292 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 293 ksh93 $(atf_get_srcdir)/zpool_import_012_pos.ksh || atf_fail "Testcase failed" 294} 295zpool_import_012_pos_cleanup() 296{ 297 . $(atf_get_srcdir)/../../../include/default.cfg 298 . $(atf_get_srcdir)/zpool_import.cfg 299 300 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 301} 302 303 304atf_test_case zpool_import_013_neg 305zpool_import_013_neg_head() 306{ 307 atf_set "descr" "'zpool import' fails for pool that was not cleanly exported" 308 atf_set "require.progs" zfs zpool 309} 310zpool_import_013_neg_body() 311{ 312 . $(atf_get_srcdir)/../../../include/default.cfg 313 . $(atf_get_srcdir)/zpool_import.cfg 314 315 ksh93 $(atf_get_srcdir)/zpool_import_013_neg.ksh || atf_fail "Testcase failed" 316} 317 318 319atf_test_case zpool_import_014_pos cleanup 320zpool_import_014_pos_head() 321{ 322 atf_set "descr" "'zpool import' can import destroyed disk-backed pools" 323 atf_set "require.progs" zfs zpool 324} 325zpool_import_014_pos_body() 326{ 327 . $(atf_get_srcdir)/../../../include/default.cfg 328 . $(atf_get_srcdir)/zpool_import.cfg 329 330 verify_disk_count "$DISKS" 1 331 ksh93 $(atf_get_srcdir)/zpool_import_014_pos.ksh || atf_fail "Testcase failed" 332} 333zpool_import_014_pos_cleanup() 334{ 335 . $(atf_get_srcdir)/../../../include/default.cfg 336 . $(atf_get_srcdir)/zpool_import.cfg 337 338 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 339} 340 341 342atf_test_case zpool_import_all_001_pos cleanup 343zpool_import_all_001_pos_head() 344{ 345 atf_set "descr" "Verify that 'zpool import -a' succeeds as root." 346 atf_set "require.progs" zfs zpool sum 347 atf_set "timeout" 2400 348} 349zpool_import_all_001_pos_body() 350{ 351 atf_skip "This test relies heavily on Solaris slices. It could be ported, but that is difficult due to the high degree of obfuscation in the code" 352 . $(atf_get_srcdir)/../../../include/default.cfg 353 . $(atf_get_srcdir)/zpool_import.cfg 354 355 verify_disk_count "$DISKS" 2 356 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 357 ksh93 $(atf_get_srcdir)/zpool_import_all_001_pos.ksh || atf_fail "Testcase failed" 358} 359zpool_import_all_001_pos_cleanup() 360{ 361 . $(atf_get_srcdir)/../../../include/default.cfg 362 . $(atf_get_srcdir)/zpool_import.cfg 363 364 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 365} 366 367 368atf_test_case zpool_import_missing_001_pos cleanup 369zpool_import_missing_001_pos_head() 370{ 371 atf_set "descr" "Verify that import could handle damaged or missing device." 372 atf_set "require.progs" zfs sum zpool zdb 373 atf_set "timeout" 2400 374} 375zpool_import_missing_001_pos_body() 376{ 377 . $(atf_get_srcdir)/../../../include/default.cfg 378 . $(atf_get_srcdir)/zpool_import.cfg 379 380 verify_disk_count "$DISKS" 2 381 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 382 ksh93 $(atf_get_srcdir)/zpool_import_missing_001_pos.ksh || atf_fail "Testcase failed" 383} 384zpool_import_missing_001_pos_cleanup() 385{ 386 . $(atf_get_srcdir)/../../../include/default.cfg 387 . $(atf_get_srcdir)/zpool_import.cfg 388 389 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 390} 391 392 393atf_test_case zpool_import_missing_002_pos cleanup 394zpool_import_missing_002_pos_head() 395{ 396 atf_set "descr" "Verify that import could handle moving device." 397 atf_set "require.progs" zpool zfs zdb 398 atf_set "timeout" 2400 399} 400zpool_import_missing_002_pos_body() 401{ 402 . $(atf_get_srcdir)/../../../include/default.cfg 403 . $(atf_get_srcdir)/zpool_import.cfg 404 405 verify_disk_count "$DISKS" 2 406 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 407 ksh93 $(atf_get_srcdir)/zpool_import_missing_002_pos.ksh || atf_fail "Testcase failed" 408} 409zpool_import_missing_002_pos_cleanup() 410{ 411 . $(atf_get_srcdir)/../../../include/default.cfg 412 . $(atf_get_srcdir)/zpool_import.cfg 413 414 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 415} 416 417 418atf_test_case zpool_import_missing_003_pos cleanup 419zpool_import_missing_003_pos_head() 420{ 421 atf_set "descr" "Verify that import could handle device overlapped." 422 atf_set "require.progs" zpool sum zfs 423 atf_set "timeout" 2400 424} 425zpool_import_missing_003_pos_body() 426{ 427 . $(atf_get_srcdir)/../../../include/default.cfg 428 . $(atf_get_srcdir)/zpool_import.cfg 429 430 verify_disk_count "$DISKS" 2 431 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 432 ksh93 $(atf_get_srcdir)/zpool_import_missing_003_pos.ksh || atf_fail "Testcase failed" 433} 434zpool_import_missing_003_pos_cleanup() 435{ 436 . $(atf_get_srcdir)/../../../include/default.cfg 437 . $(atf_get_srcdir)/zpool_import.cfg 438 439 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 440} 441 442atf_test_case zpool_import_missing_004_pos 443zpool_import_missing_004_pos_head() 444{ 445 atf_set "descr" "Verify that zpool import succeeds when devices are missing" 446 atf_set "require.progs" zfs zpool 447 atf_set "timeout" 300 448} 449zpool_import_missing_004_pos_body() 450{ 451 . $(atf_get_srcdir)/../../../include/default.cfg 452 . $(atf_get_srcdir)/zpool_import.cfg 453 454 ksh93 $(atf_get_srcdir)/zpool_import_missing_004_pos.ksh || atf_fail "Testcase failed" 455} 456 457atf_test_case zpool_import_missing_005_pos 458zpool_import_missing_005_pos_head() 459{ 460 atf_set "descr" "Verify that zpool import succeeds when devices of all types have been renamed" 461 atf_set "require.progs" mdconfig zfs zpool 462 atf_set "timeout" 300 463} 464zpool_import_missing_005_pos_body() 465{ 466 . $(atf_get_srcdir)/../../../include/default.cfg 467 . $(atf_get_srcdir)/zpool_import.cfg 468 469 ksh93 $(atf_get_srcdir)/zpool_import_missing_005_pos.ksh || atf_fail "Testcase failed" 470} 471 472 473atf_test_case zpool_import_rename_001_pos cleanup 474zpool_import_rename_001_pos_head() 475{ 476 atf_set "descr" "Verify that an imported pool can be renamed." 477 atf_set "require.progs" zfs zpool sum zdb 478 atf_set "timeout" 2400 479} 480zpool_import_rename_001_pos_body() 481{ 482 . $(atf_get_srcdir)/../../../include/default.cfg 483 . $(atf_get_srcdir)/zpool_import.cfg 484 485 verify_disk_count "$DISKS" 2 486 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 487 ksh93 $(atf_get_srcdir)/zpool_import_rename_001_pos.ksh || atf_fail "Testcase failed" 488} 489zpool_import_rename_001_pos_cleanup() 490{ 491 . $(atf_get_srcdir)/../../../include/default.cfg 492 . $(atf_get_srcdir)/zpool_import.cfg 493 494 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 495} 496 497atf_test_case zpool_import_corrupt_001_pos cleanup 498zpool_import_corrupt_001_pos_head() 499{ 500 atf_set "descr" "Verify that a disk-backed exported pool with some of its vdev labels corrupted can still be imported" 501 atf_set "require.progs" zfs zpool zdb 502 atf_set "timeout" 2400 503} 504zpool_import_corrupt_001_pos_body() 505{ 506 . $(atf_get_srcdir)/../../../include/default.cfg 507 . $(atf_get_srcdir)/zpool_import.cfg 508 509 verify_disk_count "$DISKS" 1 510 ksh93 $(atf_get_srcdir)/zpool_import_corrupt_001_pos.ksh || atf_fail "Testcase failed" 511} 512zpool_import_corrupt_001_pos_cleanup() 513{ 514 . $(atf_get_srcdir)/../../../include/default.cfg 515 . $(atf_get_srcdir)/zpool_import.cfg 516 517 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 518} 519 520atf_test_case zpool_import_destroyed_001_neg cleanup 521zpool_import_destroyed_001_neg_head() 522{ 523 atf_set "descr" "'zpool import' will not show destroyed pools, even if an out-of-date non-destroyed label remains" 524 atf_set "require.progs" zpool 525} 526zpool_import_destroyed_001_neg_body() 527{ 528 . $(atf_get_srcdir)/../../../include/default.cfg 529 530 verify_disk_count "$DISKS" 3 531 ksh93 $(atf_get_srcdir)/zpool_import_destroyed_001_neg.ksh || atf_fail "Testcase failed" 532} 533zpool_import_destroyed_001_neg_cleanup() 534{ 535 . $(atf_get_srcdir)/../../../include/default.cfg 536 537 destroy_pool "$TESTPOOL" 538 cleanup_devices "$DISKS" 539} 540 541atf_test_case zpool_import_destroyed_002_neg cleanup 542zpool_import_destroyed_002_neg_head() 543{ 544 atf_set "descr" "'zpool import' will not show destroyed pools, even if an out-of-date non-destroyed label remains" 545 atf_set "require.progs" zpool 546} 547zpool_import_destroyed_002_neg_body() 548{ 549 . $(atf_get_srcdir)/../../../include/default.cfg 550 551 verify_disk_count "$DISKS" 2 552 ksh93 $(atf_get_srcdir)/zpool_import_destroyed_002_neg.ksh || atf_fail "Testcase failed" 553} 554zpool_import_destroyed_002_neg_cleanup() 555{ 556 . $(atf_get_srcdir)/../../../include/default.cfg 557 558 destroy_pool "$TESTPOOL" 559 cleanup_devices "$DISKS" 560} 561 562 563atf_init_test_cases() 564{ 565 566 atf_add_test_case zpool_import_002_pos 567 atf_add_test_case zpool_import_003_pos 568 atf_add_test_case zpool_import_004_pos 569 atf_add_test_case zpool_import_005_pos 570 atf_add_test_case zpool_import_006_pos 571 atf_add_test_case zpool_import_007_pos 572 atf_add_test_case zpool_import_008_pos 573 atf_add_test_case zpool_import_009_neg 574 atf_add_test_case zpool_import_010_pos 575 atf_add_test_case zpool_import_011_neg 576 atf_add_test_case zpool_import_012_pos 577 atf_add_test_case zpool_import_013_neg 578 atf_add_test_case zpool_import_014_pos 579 atf_add_test_case zpool_import_all_001_pos 580 atf_add_test_case zpool_import_missing_001_pos 581 atf_add_test_case zpool_import_missing_002_pos 582 atf_add_test_case zpool_import_missing_003_pos 583 atf_add_test_case zpool_import_missing_004_pos 584 atf_add_test_case zpool_import_missing_005_pos 585 atf_add_test_case zpool_import_rename_001_pos 586 atf_add_test_case zpool_import_corrupt_001_pos 587 atf_add_test_case zpool_import_destroyed_001_neg 588 atf_add_test_case zpool_import_destroyed_002_neg 589} 590