Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/freebsd/freebsd-src.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.ksh60
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."