Enable all zfs_destroy test cases

* zfs_destroy_001_pos - Unable to reproduce the failures locally.
  Re-enabled to determine observed buildbot failure rate.

* zfs_destroy_005_neg - Updated for expected Linux behavior.
  Busy mount points, even snapshots, are expected to fail.

* zfs_destroy_010_pos - Resolved transient EBUSY with retry.

Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #5635 
Issue #5893 
Closes #6091
This commit is contained in:
Brian Behlendorf 2017-05-03 18:27:59 -07:00 committed by GitHub
parent dddef7d600
commit 35b7842f68
3 changed files with 22 additions and 14 deletions

View File

@ -99,15 +99,13 @@ tests = ['zfs_create_001_pos', 'zfs_create_002_pos', 'zfs_create_003_pos',
'zfs_create_010_neg', 'zfs_create_011_pos', 'zfs_create_012_pos',
'zfs_create_013_pos', 'zfs_create_014_pos']
# DISABLED:
# zfs_destroy_005_neg - busy mountpoint behavior
# zfs_destroy_001_pos - https://github.com/zfsonlinux/zfs/issues/5635
[tests/functional/cli_root/zfs_destroy]
tests = ['zfs_destroy_002_pos', 'zfs_destroy_003_pos',
'zfs_destroy_004_pos','zfs_destroy_006_neg', 'zfs_destroy_007_neg',
'zfs_destroy_008_pos','zfs_destroy_009_pos', 'zfs_destroy_010_pos',
'zfs_destroy_011_pos','zfs_destroy_012_pos', 'zfs_destroy_013_neg',
'zfs_destroy_014_pos','zfs_destroy_015_pos', 'zfs_destroy_016_pos']
tests = ['zfs_destroy_001_pos', 'zfs_destroy_002_pos', 'zfs_destroy_003_pos',
'zfs_destroy_004_pos', 'zfs_destroy_005_neg', 'zfs_destroy_006_neg',
'zfs_destroy_007_neg', 'zfs_destroy_008_pos', 'zfs_destroy_009_pos',
'zfs_destroy_010_pos', 'zfs_destroy_011_pos', 'zfs_destroy_012_pos',
'zfs_destroy_013_neg', 'zfs_destroy_014_pos', 'zfs_destroy_015_pos',
'zfs_destroy_016_pos']
# DISABLED:
# zfs_get_004_pos - https://github.com/zfsonlinux/zfs/issues/3484

View File

@ -187,9 +187,12 @@ pidlist=""
#
# Create the clones for test environment and make the snapshot busy.
# Then verify 'zfs destroy $snap' succeeds without '-f'.
#
# Then verify the snapshot and clone are destroyed, but nothing else is.
# For Linux verify 'zfs destroy $snap' fails due to the busy mount point. Then
# verify the snapshot remains and the clone was destroyed, but nothing else is.
#
# Under illumos verify 'zfs destroy $snap' succeeds without '-f'. Then verify
# the snapshot and clone are destroyed, but nothing else is.
#
mntpt=$(snapshot_mountpoint $FSSNAP)
@ -199,9 +202,16 @@ log_note "mkbusy $mntpt (pidlist: $pidlist)"
for option in -R -rR ; do
setup_testenv clone
log_must zfs destroy $option $FSSNAP
check_dataset datasetexists $CTR $FS $VOL
check_dataset datasetnonexists $FSSNAP $FSCLONE
if is_linux; then
log_mustnot zfs destroy $option $FSSNAP
check_dataset datasetexists $CTR $FS $VOL $FSSNAP
check_dataset datasetnonexists $FSCLONE
else
log_must zfs destroy $option $FSSNAP
check_dataset datasetexists $CTR $FS $VOL
check_dataset datasetnonexists $FSSNAP $FSCLONE
fi
done
log_must kill $pidlist

View File

@ -54,7 +54,7 @@ function test_clone_run
clone=$(eval echo \$${dstype}CLONE)
log_must zfs destroy -d $snap
log_must datasetexists $snap
log_must zfs destroy -R $clone
log_must_busy zfs destroy -R $clone
log_mustnot datasetexists $snap
log_mustnot datasetexists $clone
}