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