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 zfs_unmount_001_pos cleanup 30zfs_unmount_001_pos_head() 31{ 32 atf_set "descr" "Verify the u[n]mount [-f] sub-command." 33 atf_set "require.progs" "ksh93 zfs" 34} 35zfs_unmount_001_pos_body() 36{ 37 . $(atf_get_srcdir)/../../../include/default.cfg 38 . $(atf_get_srcdir)/zfs_unmount.kshlib 39 . $(atf_get_srcdir)/zfs_unmount.cfg 40 41 verify_disk_count "$DISKS" 1 42 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 43 ksh93 $(atf_get_srcdir)/zfs_unmount_001_pos.ksh || atf_fail "Testcase failed" 44} 45zfs_unmount_001_pos_cleanup() 46{ 47 . $(atf_get_srcdir)/../../../include/default.cfg 48 . $(atf_get_srcdir)/zfs_unmount.kshlib 49 . $(atf_get_srcdir)/zfs_unmount.cfg 50 51 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 52} 53 54 55atf_test_case zfs_unmount_002_pos cleanup 56zfs_unmount_002_pos_head() 57{ 58 atf_set "descr" "Verify that '$ZFS $unmountcmd [-f] <filesystem|mountpoint>'whose name is not in 'zfs list' will fail with return code 1." 59 atf_set "require.progs" "ksh93 zfs" 60} 61zfs_unmount_002_pos_body() 62{ 63 . $(atf_get_srcdir)/../../../include/default.cfg 64 . $(atf_get_srcdir)/zfs_unmount.kshlib 65 . $(atf_get_srcdir)/zfs_unmount.cfg 66 67 verify_disk_count "$DISKS" 1 68 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 69 ksh93 $(atf_get_srcdir)/zfs_unmount_002_pos.ksh || atf_fail "Testcase failed" 70} 71zfs_unmount_002_pos_cleanup() 72{ 73 . $(atf_get_srcdir)/../../../include/default.cfg 74 . $(atf_get_srcdir)/zfs_unmount.kshlib 75 . $(atf_get_srcdir)/zfs_unmount.cfg 76 77 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 78} 79 80 81atf_test_case zfs_unmount_003_pos cleanup 82zfs_unmount_003_pos_head() 83{ 84 atf_set "descr" "Verify that '$ZFS $unmountcmd [-f] <filesystem|mountpoint>'whose mountpoint property is 'legacy' or 'none' \will fail with return code 1." 85 atf_set "require.progs" "ksh93 zfs" 86} 87zfs_unmount_003_pos_body() 88{ 89 . $(atf_get_srcdir)/../../../include/default.cfg 90 . $(atf_get_srcdir)/zfs_unmount.kshlib 91 . $(atf_get_srcdir)/zfs_unmount.cfg 92 93 verify_disk_count "$DISKS" 1 94 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 95 ksh93 $(atf_get_srcdir)/zfs_unmount_003_pos.ksh || atf_fail "Testcase failed" 96} 97zfs_unmount_003_pos_cleanup() 98{ 99 . $(atf_get_srcdir)/../../../include/default.cfg 100 . $(atf_get_srcdir)/zfs_unmount.kshlib 101 . $(atf_get_srcdir)/zfs_unmount.cfg 102 103 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 104} 105 106 107atf_test_case zfs_unmount_004_pos cleanup 108zfs_unmount_004_pos_head() 109{ 110 atf_set "descr" "Verify that '$ZFS $unmountcmd [-f] <filesystem|mountpoint>'with an unmounted filesystem will fail with return code 1." 111 atf_set "require.progs" "ksh93 zfs" 112} 113zfs_unmount_004_pos_body() 114{ 115 . $(atf_get_srcdir)/../../../include/default.cfg 116 . $(atf_get_srcdir)/zfs_unmount.kshlib 117 . $(atf_get_srcdir)/zfs_unmount.cfg 118 119 verify_disk_count "$DISKS" 1 120 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 121 ksh93 $(atf_get_srcdir)/zfs_unmount_004_pos.ksh || atf_fail "Testcase failed" 122} 123zfs_unmount_004_pos_cleanup() 124{ 125 . $(atf_get_srcdir)/../../../include/default.cfg 126 . $(atf_get_srcdir)/zfs_unmount.kshlib 127 . $(atf_get_srcdir)/zfs_unmount.cfg 128 129 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 130} 131 132 133atf_test_case zfs_unmount_005_pos cleanup 134zfs_unmount_005_pos_head() 135{ 136 atf_set "descr" "Verify that '$ZFS $unmountcmd <filesystem|mountpoint>'with a filesystem which mountpoint is currently in use \will fail with return code 1, and forcefully will succeeds as root." 137 atf_set "require.progs" "ksh93 zfs" 138} 139zfs_unmount_005_pos_body() 140{ 141 . $(atf_get_srcdir)/../../../include/default.cfg 142 . $(atf_get_srcdir)/zfs_unmount.kshlib 143 . $(atf_get_srcdir)/zfs_unmount.cfg 144 145 verify_disk_count "$DISKS" 1 146 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 147 ksh93 $(atf_get_srcdir)/zfs_unmount_005_pos.ksh || atf_fail "Testcase failed" 148} 149zfs_unmount_005_pos_cleanup() 150{ 151 . $(atf_get_srcdir)/../../../include/default.cfg 152 . $(atf_get_srcdir)/zfs_unmount.kshlib 153 . $(atf_get_srcdir)/zfs_unmount.cfg 154 155 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 156} 157 158 159atf_test_case zfs_unmount_006_pos cleanup 160zfs_unmount_006_pos_head() 161{ 162 atf_set "descr" "Re-creating zfs files, 'zfs unmount' still succeed." 163 atf_set "require.progs" "ksh93 zfs" 164} 165zfs_unmount_006_pos_body() 166{ 167 . $(atf_get_srcdir)/../../../include/default.cfg 168 . $(atf_get_srcdir)/zfs_unmount.kshlib 169 . $(atf_get_srcdir)/zfs_unmount.cfg 170 171 verify_disk_count "$DISKS" 1 172 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 173 ksh93 $(atf_get_srcdir)/zfs_unmount_006_pos.ksh || atf_fail "Testcase failed" 174} 175zfs_unmount_006_pos_cleanup() 176{ 177 . $(atf_get_srcdir)/../../../include/default.cfg 178 . $(atf_get_srcdir)/zfs_unmount.kshlib 179 . $(atf_get_srcdir)/zfs_unmount.cfg 180 181 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 182} 183 184 185atf_test_case zfs_unmount_007_neg cleanup 186zfs_unmount_007_neg_head() 187{ 188 atf_set "descr" "Badly-formed 'zfs $unmountcmd' with inapplicable scenariosshould return an error." 189 atf_set "require.progs" "ksh93 zfs" 190} 191zfs_unmount_007_neg_body() 192{ 193 . $(atf_get_srcdir)/../../../include/default.cfg 194 . $(atf_get_srcdir)/zfs_unmount.kshlib 195 . $(atf_get_srcdir)/zfs_unmount.cfg 196 197 verify_disk_count "$DISKS" 1 198 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 199 ksh93 $(atf_get_srcdir)/zfs_unmount_007_neg.ksh || atf_fail "Testcase failed" 200} 201zfs_unmount_007_neg_cleanup() 202{ 203 . $(atf_get_srcdir)/../../../include/default.cfg 204 . $(atf_get_srcdir)/zfs_unmount.kshlib 205 . $(atf_get_srcdir)/zfs_unmount.cfg 206 207 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 208} 209 210 211atf_test_case zfs_unmount_008_neg cleanup 212zfs_unmount_008_neg_head() 213{ 214 atf_set "descr" "zfs unmount fails with bad parameters or scenarios" 215 atf_set "require.progs" "ksh93 zfs" 216} 217zfs_unmount_008_neg_body() 218{ 219 . $(atf_get_srcdir)/../../../include/default.cfg 220 . $(atf_get_srcdir)/zfs_unmount.kshlib 221 . $(atf_get_srcdir)/zfs_unmount.cfg 222 223 verify_disk_count "$DISKS" 1 224 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 225 ksh93 $(atf_get_srcdir)/zfs_unmount_008_neg.ksh || atf_fail "Testcase failed" 226} 227zfs_unmount_008_neg_cleanup() 228{ 229 . $(atf_get_srcdir)/../../../include/default.cfg 230 . $(atf_get_srcdir)/zfs_unmount.kshlib 231 . $(atf_get_srcdir)/zfs_unmount.cfg 232 233 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 234} 235 236 237atf_test_case zfs_unmount_009_pos cleanup 238zfs_unmount_009_pos_head() 239{ 240 atf_set "descr" "zfs fource unmount and destroy in snapshot directory will not cause error." 241 atf_set "require.progs" "ksh93 zfs zpool" 242} 243zfs_unmount_009_pos_body() 244{ 245 . $(atf_get_srcdir)/../../../include/default.cfg 246 . $(atf_get_srcdir)/zfs_unmount.kshlib 247 . $(atf_get_srcdir)/zfs_unmount.cfg 248 249 if other_pools_exist; then 250 atf_skip "Can't test unmount -a with existing pools" 251 fi 252 253 verify_disk_count "$DISKS" 1 254 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 255 ksh93 $(atf_get_srcdir)/zfs_unmount_009_pos.ksh || atf_fail "Testcase failed" 256} 257zfs_unmount_009_pos_cleanup() 258{ 259 . $(atf_get_srcdir)/../../../include/default.cfg 260 . $(atf_get_srcdir)/zfs_unmount.kshlib 261 . $(atf_get_srcdir)/zfs_unmount.cfg 262 263 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 264} 265 266 267atf_test_case zfs_unmount_all_001_pos cleanup 268zfs_unmount_all_001_pos_head() 269{ 270 atf_set "descr" "Verify that 'zfs $unmountall' succeeds as root,and all available ZFS filesystems are unmounted." 271 atf_set "require.progs" "ksh93 zfs" 272} 273zfs_unmount_all_001_pos_body() 274{ 275 . $(atf_get_srcdir)/../../../include/default.cfg 276 . $(atf_get_srcdir)/zfs_unmount.kshlib 277 . $(atf_get_srcdir)/zfs_unmount.cfg 278 279 if other_pools_exist; then 280 atf_skip "Can't test unmount -a with existing pools" 281 fi 282 283 verify_disk_count "$DISKS" 1 284 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed" 285 ksh93 $(atf_get_srcdir)/zfs_unmount_all_001_pos.ksh || atf_fail "Testcase failed" 286} 287zfs_unmount_all_001_pos_cleanup() 288{ 289 . $(atf_get_srcdir)/../../../include/default.cfg 290 . $(atf_get_srcdir)/zfs_unmount.kshlib 291 . $(atf_get_srcdir)/zfs_unmount.cfg 292 293 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed" 294} 295 296 297atf_init_test_cases() 298{ 299 300 atf_add_test_case zfs_unmount_001_pos 301 atf_add_test_case zfs_unmount_002_pos 302 atf_add_test_case zfs_unmount_003_pos 303 atf_add_test_case zfs_unmount_004_pos 304 atf_add_test_case zfs_unmount_005_pos 305 atf_add_test_case zfs_unmount_006_pos 306 atf_add_test_case zfs_unmount_007_neg 307 atf_add_test_case zfs_unmount_008_neg 308 atf_add_test_case zfs_unmount_009_pos 309 atf_add_test_case zfs_unmount_all_001_pos 310} 311