diff options
Diffstat (limited to 'tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh')
-rw-r--r-- | tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh | 60 |
1 files changed, 29 insertions, 31 deletions
diff --git a/tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh b/tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh index dc930cb82238..2f4dea7fbb17 100644 --- a/tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh +++ b/tests/sys/cddl/zfs/tests/hotspare/hotspare_create_001_neg.ksh @@ -40,11 +40,11 @@ # 'zpool create [-f]' with hot spares will fail # while the hot spares belong to the following cases: # - existing pool -# - nonexist device, +# - nonexistent device, # - part of an active pool, # - currently mounted, -# - devices in /etc/vfstab, -# - specified as the dedicated dump device, +# - a swap device, +# - a dump device, # - identical with the basic vdev within the pool, # # STRATEGY: @@ -72,11 +72,9 @@ function cleanup destroy_pool $pool done - if [[ -n $saved_dump_dev ]]; then - if [[ -n $DUMPADM ]]; then - log_must $DUMPADM -u -d $saved_dump_dev - fi - fi + log_onfail $UMOUNT $TMPDIR/mounted_dir + log_onfail $SWAPOFF $swap_dev + log_onfail $DUMPON -r $dump_dev partition_cleanup } @@ -87,28 +85,35 @@ log_onexit cleanup set_devs -mnttab_dev=$(find_mnttab_dev) -vfstab_dev=$(find_vfstab_dev) -saved_dump_dev=$(save_dump_dev) -dump_dev=${disk}s0 +mounted_dev=${DISK0} +swap_dev=${DISK1} +dump_dev=${DISK2} nonexist_dev=${disk}sbad_slice_num create_pool "$TESTPOOL" ${pooldevs[0]} +log_must $MKDIR $TMPDIR/mounted_dir +log_must $NEWFS $mounted_dev +log_must $MOUNT $mounted_dev $TMPDIR/mounted_dir + +log_must $SWAPON $swap_dev + +log_must $DUMPON $dump_dev + # # Set up the testing scenarios parameters # - existing pool -# - nonexist device, +# - nonexistent device, # - part of an active pool, # - currently mounted, -# - devices in /etc/vfstab, +# - a swap device, # - identical with the basic vdev within the pool, set -A arg "$TESTPOOL ${pooldevs[1]} spare ${pooldevs[2]}" \ "$TESTPOOL1 ${pooldevs[1]} spare $nonexist_dev" \ "$TESTPOOL1 ${pooldevs[1]} spare ${pooldevs[0]}" \ - "$TESTPOOL1 ${pooldevs[1]} spare $mnttab_dev" \ - "$TESTPOOL1 ${pooldevs[1]} spare $vfstab_dev" \ + "$TESTPOOL1 ${pooldevs[1]} spare $mounted_dev" \ + "$TESTPOOL1 ${pooldevs[1]} spare $swap_dev" \ "$TESTPOOL1 ${pooldevs[1]} spare ${pooldevs[1]}" typeset -i i=0 @@ -118,22 +123,15 @@ while (( i < ${#arg[*]} )); do (( i = i + 1 )) done +# - a dump device, +# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=241070 +# When that bug is fixed, add $dump_dev to $arg and remove this block. +log_must $ZPOOL create $TESTPOOL1 ${pooldevs[1]} spare $dump_dev +log_must $ZPOOL destroy -f $TESTPOOL1 +log_must $ZPOOL create -f $TESTPOOL1 ${pooldevs[1]} spare $dump_dev +log_must $ZPOOL destroy -f $TESTPOOL1 + # now destroy the pool to be polite log_must $ZPOOL destroy -f $TESTPOOL -# -# - specified as the dedicated dump device, -# This part of the test can only be run on platforms for which DUMPADM is -# defined; ie Solaris -# -if [[ -n $DUMPADM ]]; then - # create/destroy a pool as a simple way to set the partitioning - # back to something normal so we can use this $disk as a dump device - cleanup_devices $dump_dev - - log_must $DUMPADM -u -d /dev/$dump_dev - log_mustnot $ZPOOL create $TESTPOOL1 ${pooldevs[1]} spare "$dump_dev" - log_mustnot $ZPOOL create -f $TESTPOOL1 ${pooldevs[1]} spare "$dump_dev" -fi - log_pass "'zpool create [-f]' with hot spare is failed as expected with inapplicable scenarios." |