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 zpool_add_001_pos cleanup 28zpool_add_001_pos_head() 29{ 30 atf_set "descr" "'zpool add <pool> <vdev> ...' can add devices to the pool." 31 atf_set "require.progs" "ksh93 zpool" 32 atf_set "timeout" 2400 33} 34zpool_add_001_pos_body() 35{ 36 . $(atf_get_srcdir)/../../../include/default.cfg 37 . $(atf_get_srcdir)/zpool_add.kshlib 38 . $(atf_get_srcdir)/zpool_add.cfg 39 40 verify_disk_count "$DISKS" 5 41 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 42 ksh93 $(atf_get_srcdir)/zpool_add_001_pos.ksh || atf_fail "Testcase failed" 43} 44zpool_add_001_pos_cleanup() 45{ 46 . $(atf_get_srcdir)/../../../include/default.cfg 47 . $(atf_get_srcdir)/zpool_add.kshlib 48 . $(atf_get_srcdir)/zpool_add.cfg 49 50 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 51} 52 53 54atf_test_case zpool_add_002_pos cleanup 55zpool_add_002_pos_head() 56{ 57 atf_set "descr" "'zpool add -f <pool> <vdev> ...' can successfully add devices to the pool in some cases." 58 atf_set "require.progs" "ksh93 zpool" 59 atf_set "timeout" 2400 60} 61zpool_add_002_pos_body() 62{ 63 . $(atf_get_srcdir)/../../../include/default.cfg 64 . $(atf_get_srcdir)/zpool_add.kshlib 65 . $(atf_get_srcdir)/zpool_add.cfg 66 67 verify_disk_count "$DISKS" 3 68 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 69 ksh93 $(atf_get_srcdir)/zpool_add_002_pos.ksh || atf_fail "Testcase failed" 70} 71zpool_add_002_pos_cleanup() 72{ 73 . $(atf_get_srcdir)/../../../include/default.cfg 74 . $(atf_get_srcdir)/zpool_add.kshlib 75 . $(atf_get_srcdir)/zpool_add.cfg 76 77 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 78} 79 80 81atf_test_case zpool_add_003_pos cleanup 82zpool_add_003_pos_head() 83{ 84 atf_set "descr" "'zpool add -n <pool> <vdev> ...' can display the configuration without actually adding devices to the pool." 85 atf_set "require.progs" "ksh93 zpool" 86 atf_set "timeout" 2400 87} 88zpool_add_003_pos_body() 89{ 90 . $(atf_get_srcdir)/../../../include/default.cfg 91 . $(atf_get_srcdir)/zpool_add.kshlib 92 . $(atf_get_srcdir)/zpool_add.cfg 93 94 verify_disk_count "$DISKS" 2 95 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 96 ksh93 $(atf_get_srcdir)/zpool_add_003_pos.ksh || atf_fail "Testcase failed" 97} 98zpool_add_003_pos_cleanup() 99{ 100 . $(atf_get_srcdir)/../../../include/default.cfg 101 . $(atf_get_srcdir)/zpool_add.kshlib 102 . $(atf_get_srcdir)/zpool_add.cfg 103 104 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 105} 106 107 108atf_test_case zpool_add_004_pos cleanup 109zpool_add_004_pos_head() 110{ 111 atf_set "descr" "'zpool add <pool> <vdev> ...' can add zfs volume to the pool." 112 atf_set "require.progs" "ksh93 zfs zpool" 113 atf_set "timeout" 2400 114} 115zpool_add_004_pos_body() 116{ 117 . $(atf_get_srcdir)/../../../include/default.cfg 118 . $(atf_get_srcdir)/zpool_add.kshlib 119 . $(atf_get_srcdir)/zpool_add.cfg 120 121 verify_disk_count "$DISKS" 2 122 verify_zvol_recursive 123 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 124 ksh93 $(atf_get_srcdir)/zpool_add_004_pos.ksh || atf_fail "Testcase failed" 125} 126zpool_add_004_pos_cleanup() 127{ 128 . $(atf_get_srcdir)/../../../include/default.cfg 129 . $(atf_get_srcdir)/zpool_add.kshlib 130 . $(atf_get_srcdir)/zpool_add.cfg 131 132 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 133} 134 135 136atf_test_case zpool_add_005_pos cleanup 137zpool_add_005_pos_head() 138{ 139 atf_set "descr" "'zpool add' should fail with inapplicable scenarios." 140 atf_set "require.progs" "ksh93 zpool" 141 atf_set "timeout" 2400 142} 143zpool_add_005_pos_body() 144{ 145 . $(atf_get_srcdir)/../../../include/default.cfg 146 . $(atf_get_srcdir)/zpool_add.kshlib 147 . $(atf_get_srcdir)/zpool_add.cfg 148 149 verify_disk_count "$DISKS" 5 150 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 151 ksh93 $(atf_get_srcdir)/zpool_add_005_pos.ksh || atf_fail "Testcase failed" 152} 153zpool_add_005_pos_cleanup() 154{ 155 . $(atf_get_srcdir)/../../../include/default.cfg 156 . $(atf_get_srcdir)/zpool_add.kshlib 157 . $(atf_get_srcdir)/zpool_add.cfg 158 159 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 160} 161 162 163atf_test_case zpool_add_006_pos cleanup 164zpool_add_006_pos_head() 165{ 166 atf_set "descr" "'zpool add [-f]' can add large numbers of vdevs to the specified pool without any errors." 167 atf_set "require.progs" "ksh93 zfs zpool" 168 atf_set "timeout" 2400 169} 170zpool_add_006_pos_body() 171{ 172 . $(atf_get_srcdir)/../../../include/default.cfg 173 . $(atf_get_srcdir)/zpool_add.kshlib 174 . $(atf_get_srcdir)/zpool_add.cfg 175 176 verify_disk_count "$DISKS" 1 177 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 178 ksh93 $(atf_get_srcdir)/zpool_add_006_pos.ksh || atf_fail "Testcase failed" 179} 180zpool_add_006_pos_cleanup() 181{ 182 . $(atf_get_srcdir)/../../../include/default.cfg 183 . $(atf_get_srcdir)/zpool_add.kshlib 184 . $(atf_get_srcdir)/zpool_add.cfg 185 186 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 187} 188 189 190atf_test_case zpool_add_007_neg cleanup 191zpool_add_007_neg_head() 192{ 193 atf_set "descr" "'zpool add' should return an error with badly-formed parameters." 194 atf_set "require.progs" "ksh93 zpool" 195 atf_set "timeout" 2400 196} 197zpool_add_007_neg_body() 198{ 199 . $(atf_get_srcdir)/../../../include/default.cfg 200 . $(atf_get_srcdir)/zpool_add.kshlib 201 . $(atf_get_srcdir)/zpool_add.cfg 202 203 verify_disk_count "$DISKS" 2 204 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 205 ksh93 $(atf_get_srcdir)/zpool_add_007_neg.ksh || atf_fail "Testcase failed" 206} 207zpool_add_007_neg_cleanup() 208{ 209 . $(atf_get_srcdir)/../../../include/default.cfg 210 . $(atf_get_srcdir)/zpool_add.kshlib 211 . $(atf_get_srcdir)/zpool_add.cfg 212 213 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 214} 215 216 217atf_test_case zpool_add_008_neg cleanup 218zpool_add_008_neg_head() 219{ 220 atf_set "descr" "'zpool add' should return an error with nonexistent pools and vdevs" 221 atf_set "require.progs" "ksh93 zpool" 222 atf_set "timeout" 2400 223} 224zpool_add_008_neg_body() 225{ 226 . $(atf_get_srcdir)/../../../include/default.cfg 227 . $(atf_get_srcdir)/zpool_add.kshlib 228 . $(atf_get_srcdir)/zpool_add.cfg 229 230 verify_disk_count "$DISKS" 2 231 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 232 ksh93 $(atf_get_srcdir)/zpool_add_008_neg.ksh || atf_fail "Testcase failed" 233} 234zpool_add_008_neg_cleanup() 235{ 236 . $(atf_get_srcdir)/../../../include/default.cfg 237 . $(atf_get_srcdir)/zpool_add.kshlib 238 . $(atf_get_srcdir)/zpool_add.cfg 239 240 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 241} 242 243 244atf_test_case zpool_add_009_neg cleanup 245zpool_add_009_neg_head() 246{ 247 atf_set "descr" "'zpool add' should fail if vdevs are the same or vdev iscontained in the given pool." 248 atf_set "require.progs" "ksh93 zpool" 249 atf_set "timeout" 2400 250} 251zpool_add_009_neg_body() 252{ 253 . $(atf_get_srcdir)/../../../include/default.cfg 254 . $(atf_get_srcdir)/zpool_add.kshlib 255 . $(atf_get_srcdir)/zpool_add.cfg 256 257 verify_disk_count "$DISKS" 2 258 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 259 ksh93 $(atf_get_srcdir)/zpool_add_009_neg.ksh || atf_fail "Testcase failed" 260} 261zpool_add_009_neg_cleanup() 262{ 263 . $(atf_get_srcdir)/../../../include/default.cfg 264 . $(atf_get_srcdir)/zpool_add.kshlib 265 . $(atf_get_srcdir)/zpool_add.cfg 266 267 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 268} 269 270# Regression test for PR 225546. "zpool add" asserts if the pool contains a 271# replacing vdev with a spare child. 272# Assertion failed: (nvlist_lookup_string(cnv, "path", &path) == 0), file /usr/home/alans/freebsd/head/cddl/contrib/opensolaris/cmd/zpool/zpool_vdev.c, line 694. /usr/tests/sys/cddl/zfs/tests/cli_root/zpool_add/zpool_add_010_pos.ksh[54]: log_must[69]: log_pos: line 206: 27710: Abort(coredump) 273atf_test_case zpool_add_010_pos cleanup 274zpool_add_010_pos_head() 275{ 276 atf_set "descr" "'zpool add' can add devices, even if a replacing vdev with a spare child is present" 277 atf_set "require.progs" "ksh93 zpool" 278} 279zpool_add_010_pos_body() 280{ 281 . $(atf_get_srcdir)/../../../include/default.cfg 282 . $(atf_get_srcdir)/zpool_add.kshlib 283 . $(atf_get_srcdir)/zpool_add.cfg 284 285 verify_disk_count "$DISKS" 5 286 ksh93 $(atf_get_srcdir)/zpool_add_010_pos.ksh || atf_fail "Testcase failed" 287} 288zpool_add_010_pos_cleanup() 289{ 290 . $(atf_get_srcdir)/../../../include/default.cfg 291 . $(atf_get_srcdir)/zpool_add.kshlib 292 . $(atf_get_srcdir)/zpool_add.cfg 293 294 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 295} 296 297 298atf_init_test_cases() 299{ 300 301 atf_add_test_case zpool_add_001_pos 302 atf_add_test_case zpool_add_002_pos 303 atf_add_test_case zpool_add_003_pos 304 atf_add_test_case zpool_add_004_pos 305 atf_add_test_case zpool_add_005_pos 306 atf_add_test_case zpool_add_006_pos 307 atf_add_test_case zpool_add_007_neg 308 atf_add_test_case zpool_add_008_neg 309 atf_add_test_case zpool_add_009_neg 310 atf_add_test_case zpool_add_010_pos 311} 312