12fae26bdSAlan Somers# CDDL HEADER START 22fae26bdSAlan Somers# 32fae26bdSAlan Somers# The contents of this file are subject to the terms of the 42fae26bdSAlan Somers# Common Development and Distribution License (the "License"). 52fae26bdSAlan Somers# You may not use this file except in compliance with the License. 62fae26bdSAlan Somers# 72fae26bdSAlan Somers# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 82fae26bdSAlan Somers# or http://www.opensolaris.org/os/licensing. 92fae26bdSAlan Somers# See the License for the specific language governing permissions 102fae26bdSAlan Somers# and limitations under the License. 112fae26bdSAlan Somers# 122fae26bdSAlan Somers# When distributing Covered Code, include this CDDL HEADER in each 132fae26bdSAlan Somers# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 142fae26bdSAlan Somers# If applicable, add the following below this CDDL HEADER, with the 152fae26bdSAlan Somers# fields enclosed by brackets "[]" replaced with your own identifying 162fae26bdSAlan Somers# information: Portions Copyright [yyyy] [name of copyright owner] 172fae26bdSAlan Somers# 182fae26bdSAlan Somers# CDDL HEADER END 192fae26bdSAlan Somers# 202fae26bdSAlan Somers 212fae26bdSAlan Somers# 222fae26bdSAlan Somers# Copyright 2012 Spectra Logic. All rights reserved. 232fae26bdSAlan Somers# Use is subject to license terms. 242fae26bdSAlan Somers# 252fae26bdSAlan Somers 262fae26bdSAlan Somers 272fae26bdSAlan Somersatf_test_case hotspare_add_001_pos cleanup 282fae26bdSAlan Somershotspare_add_001_pos_head() 292fae26bdSAlan Somers{ 302fae26bdSAlan Somers atf_set "descr" "'zpool add <pool> spare <vdev> ...' can add devices to the pool." 312fae26bdSAlan Somers atf_set "timeout" 3600 322fae26bdSAlan Somers} 332fae26bdSAlan Somershotspare_add_001_pos_body() 342fae26bdSAlan Somers{ 352fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 362fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 372fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 382fae26bdSAlan Somers 392fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 402fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_add_001_pos.ksh || atf_fail "Testcase failed" 412fae26bdSAlan Somers} 422fae26bdSAlan Somershotspare_add_001_pos_cleanup() 432fae26bdSAlan Somers{ 442fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 452fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 462fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 472fae26bdSAlan Somers 482fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 492fae26bdSAlan Somers} 502fae26bdSAlan Somers 512fae26bdSAlan Somers 522fae26bdSAlan Somersatf_test_case hotspare_add_002_pos cleanup 532fae26bdSAlan Somershotspare_add_002_pos_head() 542fae26bdSAlan Somers{ 552fae26bdSAlan Somers atf_set "descr" "'zpool add <pool> spare <vdev> ...' can add devices to the pool while it has spare-in device." 560b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 572fae26bdSAlan Somers atf_set "timeout" 3600 582fae26bdSAlan Somers} 592fae26bdSAlan Somershotspare_add_002_pos_body() 602fae26bdSAlan Somers{ 612fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 622fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 632fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 642fae26bdSAlan Somers 652fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 662fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_add_002_pos.ksh || atf_fail "Testcase failed" 672fae26bdSAlan Somers} 682fae26bdSAlan Somershotspare_add_002_pos_cleanup() 692fae26bdSAlan Somers{ 702fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 712fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 722fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 732fae26bdSAlan Somers 742fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 752fae26bdSAlan Somers} 762fae26bdSAlan Somers 772fae26bdSAlan Somers 782fae26bdSAlan Somersatf_test_case hotspare_add_003_neg cleanup 792fae26bdSAlan Somershotspare_add_003_neg_head() 802fae26bdSAlan Somers{ 812fae26bdSAlan Somers atf_set "descr" "'zpool add [-f]' with hot spares should fail with inapplicable scenarios." 820b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 832fae26bdSAlan Somers atf_set "timeout" 3600 842fae26bdSAlan Somers} 852fae26bdSAlan Somershotspare_add_003_neg_body() 862fae26bdSAlan Somers{ 872fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 882fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 892fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 902fae26bdSAlan Somers 91*11ed0a95SEric van Gyzen verify_disk_count "$DISKS" 3 922fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 932fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_add_003_neg.ksh || atf_fail "Testcase failed" 942fae26bdSAlan Somers} 952fae26bdSAlan Somershotspare_add_003_neg_cleanup() 962fae26bdSAlan Somers{ 972fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 982fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 992fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 1002fae26bdSAlan Somers 1012fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 1022fae26bdSAlan Somers} 1032fae26bdSAlan Somers 1042fae26bdSAlan Somers 1052fae26bdSAlan Somersatf_test_case hotspare_add_004_neg cleanup 1062fae26bdSAlan Somershotspare_add_004_neg_head() 1072fae26bdSAlan Somers{ 1082fae26bdSAlan Somers atf_set "descr" "'zpool add [-f]' will not allow a swap device to be used as a hotspare'" 1090b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool swapon swapoff swapctl" 1102fae26bdSAlan Somers} 1112fae26bdSAlan Somershotspare_add_004_neg_body() 1122fae26bdSAlan Somers{ 1132fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 1142fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 1152fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 1162fae26bdSAlan Somers 1177d4670b6SAlan Somers verify_disk_count "$DISKS" 2 1182fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 1192fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_add_004_neg.ksh || atf_fail "Testcase failed" 1202fae26bdSAlan Somers} 1212fae26bdSAlan Somershotspare_add_004_neg_cleanup() 1222fae26bdSAlan Somers{ 1232fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 1242fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 1252fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 1262fae26bdSAlan Somers 1272fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 1282fae26bdSAlan Somers} 1292fae26bdSAlan Somers 1302fae26bdSAlan Somers 1312fae26bdSAlan Somersatf_test_case hotspare_clone_001_pos cleanup 1322fae26bdSAlan Somershotspare_clone_001_pos_head() 1332fae26bdSAlan Somers{ 1342fae26bdSAlan Somers atf_set "descr" "'zpool detach <pool> <vdev> ...' against hotspare should do no harm to clone." 1350b86424cSAlex Richardson atf_set "require.progs" "ksh93 zfs zpool sum" 1362fae26bdSAlan Somers atf_set "timeout" 3600 1372fae26bdSAlan Somers} 1382fae26bdSAlan Somershotspare_clone_001_pos_body() 1392fae26bdSAlan Somers{ 1402fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 1412fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 1422fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 1432fae26bdSAlan Somers 1442fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 1452fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_clone_001_pos.ksh || atf_fail "Testcase failed" 1462fae26bdSAlan Somers} 1472fae26bdSAlan Somershotspare_clone_001_pos_cleanup() 1482fae26bdSAlan Somers{ 1492fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 1502fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 1512fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 1522fae26bdSAlan Somers 1532fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 1542fae26bdSAlan Somers} 1552fae26bdSAlan Somers 1562fae26bdSAlan Somers 1572fae26bdSAlan Somersatf_test_case hotspare_clone_002_pos cleanup 1582fae26bdSAlan Somershotspare_clone_002_pos_head() 1592fae26bdSAlan Somers{ 1602fae26bdSAlan Somers atf_set "descr" "'zpool detach <pool> <vdev> ...' against basic vdev should do no harm to clone." 1610b86424cSAlex Richardson atf_set "require.progs" "ksh93 zfs zpool sum" 1622fae26bdSAlan Somers atf_set "timeout" 3600 1632fae26bdSAlan Somers} 1642fae26bdSAlan Somershotspare_clone_002_pos_body() 1652fae26bdSAlan Somers{ 1662fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 1672fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 1682fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 1692fae26bdSAlan Somers 1702fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 1712fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_clone_002_pos.ksh || atf_fail "Testcase failed" 1722fae26bdSAlan Somers} 1732fae26bdSAlan Somershotspare_clone_002_pos_cleanup() 1742fae26bdSAlan Somers{ 1752fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 1762fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 1772fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 1782fae26bdSAlan Somers 1792fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 1802fae26bdSAlan Somers} 1812fae26bdSAlan Somers 1822fae26bdSAlan Somers 1832fae26bdSAlan Somersatf_test_case hotspare_create_001_neg cleanup 1842fae26bdSAlan Somershotspare_create_001_neg_head() 1852fae26bdSAlan Somers{ 1862fae26bdSAlan Somers atf_set "descr" "'zpool create [-f]' with hot spares should be failedwith inapplicable scenarios." 187*11ed0a95SEric van Gyzen atf_set "require.progs" "ksh93 zpool" 1882fae26bdSAlan Somers atf_set "timeout" 3600 1892fae26bdSAlan Somers} 1902fae26bdSAlan Somershotspare_create_001_neg_body() 1912fae26bdSAlan Somers{ 1922fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 1932fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 1942fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 1952fae26bdSAlan Somers 196*11ed0a95SEric van Gyzen verify_disk_count "$DISKS" 3 1972fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 1982fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_create_001_neg.ksh || atf_fail "Testcase failed" 1992fae26bdSAlan Somers} 2002fae26bdSAlan Somershotspare_create_001_neg_cleanup() 2012fae26bdSAlan Somers{ 2022fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 2032fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 2042fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 2052fae26bdSAlan Somers 2062fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 2072fae26bdSAlan Somers} 2082fae26bdSAlan Somers 2092fae26bdSAlan Somers 2102fae26bdSAlan Somersatf_test_case hotspare_detach_001_pos cleanup 2112fae26bdSAlan Somershotspare_detach_001_pos_head() 2122fae26bdSAlan Somers{ 2132fae26bdSAlan Somers atf_set "descr" "'zpool detach <pool> <vdev> ...' should deactivate the spared-in hot spare device successfully." 2140b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 2152fae26bdSAlan Somers atf_set "timeout" 3600 2162fae26bdSAlan Somers} 2172fae26bdSAlan Somershotspare_detach_001_pos_body() 2182fae26bdSAlan Somers{ 2192fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 2202fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 2212fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 2222fae26bdSAlan Somers 2232fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 2242fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_detach_001_pos.ksh || atf_fail "Testcase failed" 2252fae26bdSAlan Somers} 2262fae26bdSAlan Somershotspare_detach_001_pos_cleanup() 2272fae26bdSAlan Somers{ 2282fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 2292fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 2302fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 2312fae26bdSAlan Somers 2322fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 2332fae26bdSAlan Somers} 2342fae26bdSAlan Somers 2352fae26bdSAlan Somers 2362fae26bdSAlan Somersatf_test_case hotspare_detach_002_pos cleanup 2372fae26bdSAlan Somershotspare_detach_002_pos_head() 2382fae26bdSAlan Somers{ 2392fae26bdSAlan Somers atf_set "descr" "'zpool detach <pool> <vdev> ...' against a functioning device that have spared should take the hot spare permanently swapping in successfully." 2400b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 2412fae26bdSAlan Somers atf_set "timeout" 3600 2422fae26bdSAlan Somers} 2432fae26bdSAlan Somershotspare_detach_002_pos_body() 2442fae26bdSAlan Somers{ 2452fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 2462fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 2472fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 2482fae26bdSAlan Somers 2492fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 2502fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_detach_002_pos.ksh || atf_fail "Testcase failed" 2512fae26bdSAlan Somers} 2522fae26bdSAlan Somershotspare_detach_002_pos_cleanup() 2532fae26bdSAlan Somers{ 2542fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 2552fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 2562fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 2572fae26bdSAlan Somers 2582fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 2592fae26bdSAlan Somers} 2602fae26bdSAlan Somers 2612fae26bdSAlan Somers 2622fae26bdSAlan Somersatf_test_case hotspare_detach_003_pos cleanup 2632fae26bdSAlan Somershotspare_detach_003_pos_head() 2642fae26bdSAlan Somers{ 2652fae26bdSAlan Somers atf_set "descr" "'zpool replace <pool> <vdev> <ndev>' against a functioning device that have spared should complete and the hot spare should return to available." 2660b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 2672fae26bdSAlan Somers atf_set "timeout" 3600 2682fae26bdSAlan Somers} 2692fae26bdSAlan Somershotspare_detach_003_pos_body() 2702fae26bdSAlan Somers{ 2712fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 2722fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 2732fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 2742fae26bdSAlan Somers 2752fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 2762fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_detach_003_pos.ksh || atf_fail "Testcase failed" 2772fae26bdSAlan Somers} 2782fae26bdSAlan Somershotspare_detach_003_pos_cleanup() 2792fae26bdSAlan Somers{ 2802fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 2812fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 2822fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 2832fae26bdSAlan Somers 2842fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 2852fae26bdSAlan Somers} 2862fae26bdSAlan Somers 2872fae26bdSAlan Somers 2882fae26bdSAlan Somersatf_test_case hotspare_detach_004_pos cleanup 2892fae26bdSAlan Somershotspare_detach_004_pos_head() 2902fae26bdSAlan Somers{ 2912fae26bdSAlan Somers atf_set "descr" "'zpool replace <pool> <vdev> <ndev>' against a hot spare device that have been activated should successful while the another dev is a available hot spare." 2920b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 2932fae26bdSAlan Somers atf_set "timeout" 3600 2942fae26bdSAlan Somers} 2952fae26bdSAlan Somershotspare_detach_004_pos_body() 2962fae26bdSAlan Somers{ 2972fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 2982fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 2992fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 3002fae26bdSAlan Somers 3012fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 3022fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_detach_004_pos.ksh || atf_fail "Testcase failed" 3032fae26bdSAlan Somers} 3042fae26bdSAlan Somershotspare_detach_004_pos_cleanup() 3052fae26bdSAlan Somers{ 3062fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 3072fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 3082fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 3092fae26bdSAlan Somers 3102fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 3112fae26bdSAlan Somers} 3122fae26bdSAlan Somers 3132fae26bdSAlan Somers 3142fae26bdSAlan Somersatf_test_case hotspare_detach_005_neg cleanup 3152fae26bdSAlan Somershotspare_detach_005_neg_head() 3162fae26bdSAlan Somers{ 3172fae26bdSAlan Somers atf_set "descr" "'zpool detach <pool> <vdev>' against a hot spare device that NOT activated should fail and issue an error message." 3180b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 3192fae26bdSAlan Somers atf_set "timeout" 3600 3202fae26bdSAlan Somers} 3212fae26bdSAlan Somershotspare_detach_005_neg_body() 3222fae26bdSAlan Somers{ 3232fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 3242fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 3252fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 3262fae26bdSAlan Somers 3272fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 3282fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_detach_005_neg.ksh || atf_fail "Testcase failed" 3292fae26bdSAlan Somers} 3302fae26bdSAlan Somershotspare_detach_005_neg_cleanup() 3312fae26bdSAlan Somers{ 3322fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 3332fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 3342fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 3352fae26bdSAlan Somers 3362fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 3372fae26bdSAlan Somers} 3382fae26bdSAlan Somers 3392fae26bdSAlan Somers 3402fae26bdSAlan Somersatf_test_case hotspare_export_001_neg cleanup 3412fae26bdSAlan Somershotspare_export_001_neg_head() 3422fae26bdSAlan Somers{ 3432fae26bdSAlan Somers atf_set "descr" "export pool that using shared hotspares will fail" 3440b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 3452fae26bdSAlan Somers atf_set "timeout" 3600 3462fae26bdSAlan Somers} 3472fae26bdSAlan Somershotspare_export_001_neg_body() 3482fae26bdSAlan Somers{ 3492fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 3502fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 3512fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 3522fae26bdSAlan Somers 3532fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 3542fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_export_001_neg.ksh || atf_fail "Testcase failed" 3552fae26bdSAlan Somers} 3562fae26bdSAlan Somershotspare_export_001_neg_cleanup() 3572fae26bdSAlan Somers{ 3582fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 3592fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 3602fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 3612fae26bdSAlan Somers 3622fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 3632fae26bdSAlan Somers} 3642fae26bdSAlan Somers 3652fae26bdSAlan Somers 3662fae26bdSAlan Somersatf_test_case hotspare_import_001_pos cleanup 3672fae26bdSAlan Somershotspare_import_001_pos_head() 3682fae26bdSAlan Somers{ 3692fae26bdSAlan Somers atf_set "descr" "'zpool export/import <pool>' should runs successfully regardless the hotspare is only in list, activated, or offline." 3700b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool sum" 3712fae26bdSAlan Somers atf_set "timeout" 3600 3722fae26bdSAlan Somers} 3732fae26bdSAlan Somershotspare_import_001_pos_body() 3742fae26bdSAlan Somers{ 3752fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 3762fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 3772fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 3782fae26bdSAlan Somers 3792fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 3802fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_import_001_pos.ksh || atf_fail "Testcase failed" 3812fae26bdSAlan Somers} 3822fae26bdSAlan Somershotspare_import_001_pos_cleanup() 3832fae26bdSAlan Somers{ 3842fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 3852fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 3862fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 3872fae26bdSAlan Somers 3882fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 3892fae26bdSAlan Somers} 3902fae26bdSAlan Somers 3912fae26bdSAlan Somers 3922fae26bdSAlan Somersatf_test_case hotspare_onoffline_003_neg cleanup 3932fae26bdSAlan Somershotspare_onoffline_003_neg_head() 3942fae26bdSAlan Somers{ 3952fae26bdSAlan Somers atf_set "descr" "'zpool offline/online <pool> <vdev>' should fail on inactive spares" 3960b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool zdb" 3972fae26bdSAlan Somers atf_set "timeout" 3600 3982fae26bdSAlan Somers} 3992fae26bdSAlan Somershotspare_onoffline_003_neg_body() 4002fae26bdSAlan Somers{ 4012fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 4022fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 4032fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 4042fae26bdSAlan Somers 4052fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 4062fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_onoffline_003_neg.ksh || atf_fail "Testcase failed" 4072fae26bdSAlan Somers} 4082fae26bdSAlan Somershotspare_onoffline_003_neg_cleanup() 4092fae26bdSAlan Somers{ 4102fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 4112fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 4122fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 4132fae26bdSAlan Somers 4142fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 4152fae26bdSAlan Somers} 4162fae26bdSAlan Somers 4172fae26bdSAlan Somers 4182fae26bdSAlan Somersatf_test_case hotspare_onoffline_004_neg cleanup 4192fae26bdSAlan Somershotspare_onoffline_004_neg_head() 4202fae26bdSAlan Somers{ 4212fae26bdSAlan Somers atf_set "descr" "'zpool offline/online <pool> <vdev>' against a spared basic vdev during I/O completes." 4220b86424cSAlex Richardson atf_set "require.progs" "ksh93 zfs zpool zdb" 4232fae26bdSAlan Somers atf_set "timeout" 3600 4242fae26bdSAlan Somers} 4252fae26bdSAlan Somershotspare_onoffline_004_neg_body() 4262fae26bdSAlan Somers{ 4272fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 4282fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 4292fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 4302fae26bdSAlan Somers 4312fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 4322fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_onoffline_004_neg.ksh || atf_fail "Testcase failed" 4332fae26bdSAlan Somers} 4342fae26bdSAlan Somershotspare_onoffline_004_neg_cleanup() 4352fae26bdSAlan Somers{ 4362fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 4372fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 4382fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 4392fae26bdSAlan Somers 4402fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 4412fae26bdSAlan Somers} 4422fae26bdSAlan Somers 4432fae26bdSAlan Somers 4442fae26bdSAlan Somersatf_test_case hotspare_remove_001_pos cleanup 4452fae26bdSAlan Somershotspare_remove_001_pos_head() 4462fae26bdSAlan Somers{ 4472fae26bdSAlan Somers atf_set "descr" "'zpool remove <pool> <vdev> ...' can remove spare device from the pool." 4480b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 4492fae26bdSAlan Somers atf_set "timeout" 3600 4502fae26bdSAlan Somers} 4512fae26bdSAlan Somershotspare_remove_001_pos_body() 4522fae26bdSAlan Somers{ 4532fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 4542fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 4552fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 4562fae26bdSAlan Somers 4572fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 4582fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_remove_001_pos.ksh || atf_fail "Testcase failed" 4592fae26bdSAlan Somers} 4602fae26bdSAlan Somershotspare_remove_001_pos_cleanup() 4612fae26bdSAlan Somers{ 4622fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 4632fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 4642fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 4652fae26bdSAlan Somers 4662fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 4672fae26bdSAlan Somers} 4682fae26bdSAlan Somers 4692fae26bdSAlan Somers 4702fae26bdSAlan Somersatf_test_case hotspare_remove_002_neg cleanup 4712fae26bdSAlan Somershotspare_remove_002_neg_head() 4722fae26bdSAlan Somers{ 4732fae26bdSAlan Somers atf_set "descr" "'zpool remove <pool> <vdev> ...' should fail with inapplicable scenarios." 4740b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 4752fae26bdSAlan Somers atf_set "timeout" 3600 4762fae26bdSAlan Somers} 4772fae26bdSAlan Somershotspare_remove_002_neg_body() 4782fae26bdSAlan Somers{ 4792fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 4802fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 4812fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 4822fae26bdSAlan Somers 4832fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 4842fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_remove_002_neg.ksh || atf_fail "Testcase failed" 4852fae26bdSAlan Somers} 4862fae26bdSAlan Somershotspare_remove_002_neg_cleanup() 4872fae26bdSAlan Somers{ 4882fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 4892fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 4902fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 4912fae26bdSAlan Somers 4922fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 4932fae26bdSAlan Somers} 4942fae26bdSAlan Somers 4952fae26bdSAlan Somers 4962fae26bdSAlan Somersatf_test_case hotspare_remove_003_neg cleanup 4972fae26bdSAlan Somershotspare_remove_003_neg_head() 4982fae26bdSAlan Somers{ 4992fae26bdSAlan Somers atf_set "descr" "Executing 'zpool remove' with bad options fails" 5000b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 5012fae26bdSAlan Somers atf_set "timeout" 3600 5022fae26bdSAlan Somers} 5032fae26bdSAlan Somershotspare_remove_003_neg_body() 5042fae26bdSAlan Somers{ 5052fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 5062fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 5072fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 5082fae26bdSAlan Somers 5092fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 5102fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_remove_003_neg.ksh || atf_fail "Testcase failed" 5112fae26bdSAlan Somers} 5122fae26bdSAlan Somershotspare_remove_003_neg_cleanup() 5132fae26bdSAlan Somers{ 5142fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 5152fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 5162fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 5172fae26bdSAlan Somers 5182fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 5192fae26bdSAlan Somers} 5202fae26bdSAlan Somers 5212fae26bdSAlan Somers 5222fae26bdSAlan Somersatf_test_case hotspare_remove_004_pos cleanup 5232fae26bdSAlan Somershotspare_remove_004_pos_head() 5242fae26bdSAlan Somers{ 5252fae26bdSAlan Somers atf_set "descr" "'zpool remove <pool> <vdev> ...' can remove spare device from the pool." 5260b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 5272fae26bdSAlan Somers atf_set "timeout" 3600 5282fae26bdSAlan Somers} 5292fae26bdSAlan Somershotspare_remove_004_pos_body() 5302fae26bdSAlan Somers{ 5312fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 5322fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 5332fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 5342fae26bdSAlan Somers 5352fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 5362fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_remove_004_pos.ksh || atf_fail "Testcase failed" 5372fae26bdSAlan Somers} 5382fae26bdSAlan Somershotspare_remove_004_pos_cleanup() 5392fae26bdSAlan Somers{ 5402fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 5412fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 5422fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 5432fae26bdSAlan Somers 5442fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 5452fae26bdSAlan Somers} 5462fae26bdSAlan Somers 5472fae26bdSAlan Somers 5482fae26bdSAlan Somersatf_test_case hotspare_replace_001_neg cleanup 5492fae26bdSAlan Somershotspare_replace_001_neg_head() 5502fae26bdSAlan Somers{ 5512fae26bdSAlan Somers atf_set "descr" "'zpool replace <pool> <odev> <ndev>' should fail with inapplicable scenarios." 5520b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 5532fae26bdSAlan Somers atf_set "timeout" 3600 5542fae26bdSAlan Somers} 5552fae26bdSAlan Somershotspare_replace_001_neg_body() 5562fae26bdSAlan Somers{ 5572fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 5582fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 5592fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 5602fae26bdSAlan Somers 5612fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 5622fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_replace_001_neg.ksh || atf_fail "Testcase failed" 5632fae26bdSAlan Somers} 5642fae26bdSAlan Somershotspare_replace_001_neg_cleanup() 5652fae26bdSAlan Somers{ 5662fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 5672fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 5682fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 5692fae26bdSAlan Somers 5702fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 5712fae26bdSAlan Somers} 5722fae26bdSAlan Somers 5732fae26bdSAlan Somers 5742fae26bdSAlan Somersatf_test_case hotspare_replace_002_neg cleanup 5752fae26bdSAlan Somershotspare_replace_002_neg_head() 5762fae26bdSAlan Somers{ 5772fae26bdSAlan Somers atf_set "descr" "'zpool replace <pool> <odev> <ndev>' should fail while the hot spares smaller than the basic vdev." 5780b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 5792fae26bdSAlan Somers atf_set "timeout" 3600 5802fae26bdSAlan Somers} 5812fae26bdSAlan Somershotspare_replace_002_neg_body() 5822fae26bdSAlan Somers{ 5832fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 5842fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 5852fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 5862fae26bdSAlan Somers 5872fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 5882fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_replace_002_neg.ksh || atf_fail "Testcase failed" 5892fae26bdSAlan Somers} 5902fae26bdSAlan Somershotspare_replace_002_neg_cleanup() 5912fae26bdSAlan Somers{ 5922fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 5932fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 5942fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 5952fae26bdSAlan Somers 5962fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 5972fae26bdSAlan Somers} 5982fae26bdSAlan Somers 5992fae26bdSAlan Somers 6002fae26bdSAlan Somersatf_test_case hotspare_scrub_001_pos cleanup 6012fae26bdSAlan Somershotspare_scrub_001_pos_head() 6022fae26bdSAlan Somers{ 6032fae26bdSAlan Somers atf_set "descr" "'zpool scrub <pool>' should runs successfully regardlessthe hotspare is only in list or activated." 6040b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 6052fae26bdSAlan Somers atf_set "timeout" 3600 6062fae26bdSAlan Somers} 6072fae26bdSAlan Somershotspare_scrub_001_pos_body() 6082fae26bdSAlan Somers{ 6092fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 6102fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 6112fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 6122fae26bdSAlan Somers 6132fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 6142fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_scrub_001_pos.ksh || atf_fail "Testcase failed" 6152fae26bdSAlan Somers} 6162fae26bdSAlan Somershotspare_scrub_001_pos_cleanup() 6172fae26bdSAlan Somers{ 6182fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 6192fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 6202fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 6212fae26bdSAlan Somers 6222fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 6232fae26bdSAlan Somers} 6242fae26bdSAlan Somers 6252fae26bdSAlan Somers 6262fae26bdSAlan Somersatf_test_case hotspare_scrub_002_pos cleanup 6272fae26bdSAlan Somershotspare_scrub_002_pos_head() 6282fae26bdSAlan Somers{ 6292fae26bdSAlan Somers atf_set "descr" "'zpool scrub' scans spare vdevs" 6300b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 6312fae26bdSAlan Somers} 6322fae26bdSAlan Somershotspare_scrub_002_pos_body() 6332fae26bdSAlan Somers{ 6342fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 6352fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 6362fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 6372fae26bdSAlan Somers 638bbacbaccSAlan Somers atf_expect_fail "PR 241069 scrub does not detect all errors on active spares" 6392fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 6402fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_scrub_002_pos.ksh || atf_fail "Testcase failed" 6412fae26bdSAlan Somers} 6422fae26bdSAlan Somershotspare_scrub_002_pos_cleanup() 6432fae26bdSAlan Somers{ 6442fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 6452fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 6462fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 6472fae26bdSAlan Somers 6482fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 6492fae26bdSAlan Somers} 6502fae26bdSAlan Somers 6512fae26bdSAlan Somers 6522fae26bdSAlan Somersatf_test_case hotspare_shared_001_pos cleanup 6532fae26bdSAlan Somershotspare_shared_001_pos_head() 6542fae26bdSAlan Somers{ 6552fae26bdSAlan Somers atf_set "descr" "'zpool add <pool> spare <vdev> ...' can add a disk as a shared spare to multiple pools." 6560b86424cSAlex Richardson atf_set "require.progs" "ksh93 zpool" 6572fae26bdSAlan Somers atf_set "timeout" 3600 6582fae26bdSAlan Somers} 6592fae26bdSAlan Somershotspare_shared_001_pos_body() 6602fae26bdSAlan Somers{ 6612fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 6622fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 6632fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 6642fae26bdSAlan Somers 6652fae26bdSAlan Somers verify_disk_count "$DISKS" 5 6662fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 6672fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_shared_001_pos.ksh || atf_fail "Testcase failed" 6682fae26bdSAlan Somers} 6692fae26bdSAlan Somershotspare_shared_001_pos_cleanup() 6702fae26bdSAlan Somers{ 6712fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 6722fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 6732fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 6742fae26bdSAlan Somers 6752fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 6762fae26bdSAlan Somers} 6772fae26bdSAlan Somers 6782fae26bdSAlan Somers 6792fae26bdSAlan Somersatf_test_case hotspare_snapshot_001_pos cleanup 6802fae26bdSAlan Somershotspare_snapshot_001_pos_head() 6812fae26bdSAlan Somers{ 6822fae26bdSAlan Somers atf_set "descr" "'zpool detach <pool> <vdev> ...' against hotspare should do no harm to snapshot." 6830b86424cSAlex Richardson atf_set "require.progs" "ksh93 zfs zpool sum" 6842fae26bdSAlan Somers atf_set "timeout" 3600 6852fae26bdSAlan Somers} 6862fae26bdSAlan Somershotspare_snapshot_001_pos_body() 6872fae26bdSAlan Somers{ 6882fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 6892fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 6902fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 6912fae26bdSAlan Somers 6922fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 6932fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_snapshot_001_pos.ksh || atf_fail "Testcase failed" 6942fae26bdSAlan Somers} 6952fae26bdSAlan Somershotspare_snapshot_001_pos_cleanup() 6962fae26bdSAlan Somers{ 6972fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 6982fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 6992fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 7002fae26bdSAlan Somers 7012fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 7022fae26bdSAlan Somers} 7032fae26bdSAlan Somers 7042fae26bdSAlan Somers 7052fae26bdSAlan Somersatf_test_case hotspare_snapshot_002_pos cleanup 7062fae26bdSAlan Somershotspare_snapshot_002_pos_head() 7072fae26bdSAlan Somers{ 7082fae26bdSAlan Somers atf_set "descr" "'zpool detach <pool> <vdev> ...' against basic vdev do no harm to snapshot." 7090b86424cSAlex Richardson atf_set "require.progs" "ksh93 zfs zpool sum" 7102fae26bdSAlan Somers atf_set "timeout" 3600 7112fae26bdSAlan Somers} 7122fae26bdSAlan Somershotspare_snapshot_002_pos_body() 7132fae26bdSAlan Somers{ 7142fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 7152fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 7162fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 7172fae26bdSAlan Somers 7182fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 7192fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/hotspare_snapshot_002_pos.ksh || atf_fail "Testcase failed" 7202fae26bdSAlan Somers} 7212fae26bdSAlan Somershotspare_snapshot_002_pos_cleanup() 7222fae26bdSAlan Somers{ 7232fae26bdSAlan Somers . $(atf_get_srcdir)/../../include/default.cfg 7242fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.kshlib 7252fae26bdSAlan Somers . $(atf_get_srcdir)/hotspare.cfg 7262fae26bdSAlan Somers 7272fae26bdSAlan Somers ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 7282fae26bdSAlan Somers} 7292fae26bdSAlan Somers 7302fae26bdSAlan Somers 7312fae26bdSAlan Somersatf_init_test_cases() 7322fae26bdSAlan Somers{ 7332fae26bdSAlan Somers 7342fae26bdSAlan Somers atf_add_test_case hotspare_add_001_pos 7352fae26bdSAlan Somers atf_add_test_case hotspare_add_002_pos 7362fae26bdSAlan Somers atf_add_test_case hotspare_add_003_neg 7372fae26bdSAlan Somers atf_add_test_case hotspare_add_004_neg 7382fae26bdSAlan Somers atf_add_test_case hotspare_clone_001_pos 7392fae26bdSAlan Somers atf_add_test_case hotspare_clone_002_pos 7402fae26bdSAlan Somers atf_add_test_case hotspare_create_001_neg 7412fae26bdSAlan Somers atf_add_test_case hotspare_detach_001_pos 7422fae26bdSAlan Somers atf_add_test_case hotspare_detach_002_pos 7432fae26bdSAlan Somers atf_add_test_case hotspare_detach_003_pos 7442fae26bdSAlan Somers atf_add_test_case hotspare_detach_004_pos 7452fae26bdSAlan Somers atf_add_test_case hotspare_detach_005_neg 7462fae26bdSAlan Somers atf_add_test_case hotspare_export_001_neg 7472fae26bdSAlan Somers atf_add_test_case hotspare_import_001_pos 7482fae26bdSAlan Somers atf_add_test_case hotspare_onoffline_003_neg 7492fae26bdSAlan Somers atf_add_test_case hotspare_onoffline_004_neg 7502fae26bdSAlan Somers atf_add_test_case hotspare_remove_001_pos 7512fae26bdSAlan Somers atf_add_test_case hotspare_remove_002_neg 7522fae26bdSAlan Somers atf_add_test_case hotspare_remove_003_neg 7532fae26bdSAlan Somers atf_add_test_case hotspare_remove_004_pos 7542fae26bdSAlan Somers atf_add_test_case hotspare_replace_001_neg 7552fae26bdSAlan Somers atf_add_test_case hotspare_replace_002_neg 7562fae26bdSAlan Somers atf_add_test_case hotspare_scrub_001_pos 7572fae26bdSAlan Somers atf_add_test_case hotspare_scrub_002_pos 7582fae26bdSAlan Somers atf_add_test_case hotspare_shared_001_pos 7592fae26bdSAlan Somers atf_add_test_case hotspare_snapshot_001_pos 7602fae26bdSAlan Somers atf_add_test_case hotspare_snapshot_002_pos 7612fae26bdSAlan Somers} 762