mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 10:01:01 +03:00
ZTS: Improve zts-auto_offline_001_pos
The zts-auto_offline_001_pos test could exceed the 10 minute test limit and be KILLED by the test infrastructure. To prevent this speed up the test case by: * Removing redundant pool configurations. Each of the following vdev types is tested once: mirror, raidz, cache, and special. * The block_device_wait function need only wait on the block device which has been removed as part of the test. Reviewed-by: Paul Zuchowski <pzuchowski@datto.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #9827
This commit is contained in:
parent
36e5b4a94b
commit
9ab6109fb5
@ -73,13 +73,11 @@ filedev3="$TEST_BASE_DIR/file-vdev-3"
|
|||||||
sparedev="$TEST_BASE_DIR/file-vdev-spare"
|
sparedev="$TEST_BASE_DIR/file-vdev-spare"
|
||||||
removedev=$(get_debug_device)
|
removedev=$(get_debug_device)
|
||||||
|
|
||||||
typeset poolconfs=("mirror $filedev1 $removedev"
|
typeset poolconfs=(
|
||||||
"raidz $filedev1 $removedev"
|
"mirror $filedev1 $removedev"
|
||||||
"raidz2 $filedev1 $filedev2 $removedev"
|
|
||||||
"raidz3 $filedev1 $filedev2 $filedev3 $removedev"
|
"raidz3 $filedev1 $filedev2 $filedev3 $removedev"
|
||||||
"$filedev1 cache $removedev"
|
"$filedev1 cache $removedev"
|
||||||
"mirror $filedev1 $filedev2 cache $removedev"
|
"mirror $filedev1 $filedev2 special mirror $filedev3 $removedev"
|
||||||
"raidz $filedev1 $filedev2 $filedev3 cache $removedev"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
log_must truncate -s $SPA_MINDEVSIZE $filedev1
|
log_must truncate -s $SPA_MINDEVSIZE $filedev1
|
||||||
@ -91,7 +89,7 @@ for conf in "${poolconfs[@]}"
|
|||||||
do
|
do
|
||||||
# 1. Create a pool
|
# 1. Create a pool
|
||||||
log_must zpool create -f $TESTPOOL $conf
|
log_must zpool create -f $TESTPOOL $conf
|
||||||
block_device_wait
|
block_device_wait ${DEV_DSKDIR}/${removedev}
|
||||||
|
|
||||||
# 2. Simulate physical removal of one device
|
# 2. Simulate physical removal of one device
|
||||||
remove_disk $removedev
|
remove_disk $removedev
|
||||||
@ -107,8 +105,8 @@ do
|
|||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
destroy_pool $TESTPOOL
|
destroy_pool $TESTPOOL
|
||||||
log_must parted "/dev/${removedev}" -s -- mklabel msdos
|
log_must parted "${DEV_DSKDIR}/${removedev}" -s -- mklabel msdos
|
||||||
block_device_wait
|
block_device_wait ${DEV_DSKDIR}/${removedev}
|
||||||
done
|
done
|
||||||
|
|
||||||
# 6. Repeat the same tests with a spare device: zed will use the spare to handle
|
# 6. Repeat the same tests with a spare device: zed will use the spare to handle
|
||||||
@ -117,7 +115,7 @@ for conf in "${poolconfs[@]}"
|
|||||||
do
|
do
|
||||||
# 1. Create a pool with a spare
|
# 1. Create a pool with a spare
|
||||||
log_must zpool create -f $TESTPOOL $conf
|
log_must zpool create -f $TESTPOOL $conf
|
||||||
block_device_wait
|
block_device_wait ${DEV_DSKDIR}/${removedev}
|
||||||
log_must zpool add $TESTPOOL spare $sparedev
|
log_must zpool add $TESTPOOL spare $sparedev
|
||||||
|
|
||||||
# 3. Simulate physical removal of one device
|
# 3. Simulate physical removal of one device
|
||||||
@ -139,8 +137,8 @@ do
|
|||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
destroy_pool $TESTPOOL
|
destroy_pool $TESTPOOL
|
||||||
log_must parted "/dev/${removedev}" -s -- mklabel msdos
|
log_must parted "${DEV_DSKDIR}/${removedev}" -s -- mklabel msdos
|
||||||
block_device_wait
|
block_device_wait ${DEV_DSKDIR}/${removedev}
|
||||||
done
|
done
|
||||||
|
|
||||||
# 7. Repeat the same tests again with a faulted spare device: zed should offline
|
# 7. Repeat the same tests again with a faulted spare device: zed should offline
|
||||||
@ -149,7 +147,7 @@ for conf in "${poolconfs[@]}"
|
|||||||
do
|
do
|
||||||
# 1. Create a pool with a spare
|
# 1. Create a pool with a spare
|
||||||
log_must zpool create -f $TESTPOOL $conf
|
log_must zpool create -f $TESTPOOL $conf
|
||||||
block_device_wait
|
block_device_wait ${DEV_DSKDIR}/${removedev}
|
||||||
log_must zpool add $TESTPOOL spare $sparedev
|
log_must zpool add $TESTPOOL spare $sparedev
|
||||||
|
|
||||||
# 2. Fault the spare device making it unavailable
|
# 2. Fault the spare device making it unavailable
|
||||||
@ -170,8 +168,8 @@ do
|
|||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
destroy_pool $TESTPOOL
|
destroy_pool $TESTPOOL
|
||||||
log_must parted "/dev/${removedev}" -s -- mklabel msdos
|
log_must parted "${DEV_DSKDIR}/${removedev}" -s -- mklabel msdos
|
||||||
block_device_wait
|
block_device_wait ${DEV_DSKDIR}/${removedev}
|
||||||
done
|
done
|
||||||
|
|
||||||
log_pass "ZED detects physically removed devices"
|
log_pass "ZED detects physically removed devices"
|
||||||
|
Loading…
Reference in New Issue
Block a user