mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
Enable block_cloning tests on FreeBSD
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Pawel Jakub Dawidek <pawel@dawidek.net> Closes #15749
This commit is contained in:
parent
c16d103422
commit
83c0ccc7cf
@ -71,6 +71,17 @@ tests = ['bclone_crossfs_corner_cases_limited',
|
|||||||
tags = ['functional', 'bclone']
|
tags = ['functional', 'bclone']
|
||||||
timeout = 7200
|
timeout = 7200
|
||||||
|
|
||||||
|
[tests/functional/block_cloning]
|
||||||
|
tests = ['block_cloning_copyfilerange', 'block_cloning_copyfilerange_partial',
|
||||||
|
'block_cloning_copyfilerange_fallback',
|
||||||
|
'block_cloning_disabled_copyfilerange',
|
||||||
|
'block_cloning_copyfilerange_cross_dataset',
|
||||||
|
'block_cloning_cross_enc_dataset',
|
||||||
|
'block_cloning_copyfilerange_fallback_same_txg',
|
||||||
|
'block_cloning_replay', 'block_cloning_replay_encrypted',
|
||||||
|
'block_cloning_lwb_buffer_overflow']
|
||||||
|
tags = ['functional', 'block_cloning']
|
||||||
|
|
||||||
[tests/functional/bootfs]
|
[tests/functional/bootfs]
|
||||||
tests = ['bootfs_001_pos', 'bootfs_002_neg', 'bootfs_003_pos',
|
tests = ['bootfs_001_pos', 'bootfs_002_neg', 'bootfs_003_pos',
|
||||||
'bootfs_004_neg', 'bootfs_005_neg', 'bootfs_006_pos', 'bootfs_007_pos',
|
'bootfs_004_neg', 'bootfs_005_neg', 'bootfs_006_pos', 'bootfs_007_pos',
|
||||||
|
@ -35,17 +35,9 @@ tests = ['atime_003_pos', 'root_relatime_on']
|
|||||||
tags = ['functional', 'atime']
|
tags = ['functional', 'atime']
|
||||||
|
|
||||||
[tests/functional/block_cloning:Linux]
|
[tests/functional/block_cloning:Linux]
|
||||||
tests = ['block_cloning_copyfilerange', 'block_cloning_copyfilerange_partial',
|
tests = ['block_cloning_ficlone', 'block_cloning_ficlonerange',
|
||||||
'block_cloning_copyfilerange_fallback',
|
'block_cloning_ficlonerange_partial', 'block_cloning_disabled_ficlone',
|
||||||
'block_cloning_ficlone', 'block_cloning_ficlonerange',
|
'block_cloning_disabled_ficlonerange']
|
||||||
'block_cloning_ficlonerange_partial',
|
|
||||||
'block_cloning_disabled_copyfilerange', 'block_cloning_disabled_ficlone',
|
|
||||||
'block_cloning_disabled_ficlonerange',
|
|
||||||
'block_cloning_copyfilerange_cross_dataset',
|
|
||||||
'block_cloning_cross_enc_dataset',
|
|
||||||
'block_cloning_copyfilerange_fallback_same_txg',
|
|
||||||
'block_cloning_replay', 'block_cloning_replay_encrypted',
|
|
||||||
'block_cloning_lwb_buffer_overflow']
|
|
||||||
tags = ['functional', 'block_cloning']
|
tags = ['functional', 'block_cloning']
|
||||||
|
|
||||||
[tests/functional/chattr:Linux]
|
[tests/functional/chattr:Linux]
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
||||||
log_unsupported "copy_file_range not available before Linux 4.5"
|
log_unsupported "copy_file_range not available before Linux 4.5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "5.3") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "5.3") ]]; then
|
||||||
log_unsupported "copy_file_range can't copy cross-filesystem before Linux 5.3"
|
log_unsupported "copy_file_range can't copy cross-filesystem before Linux 5.3"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
||||||
log_unsupported "copy_file_range not available before Linux 4.5"
|
log_unsupported "copy_file_range not available before Linux 4.5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
||||||
log_unsupported "copy_file_range not available before Linux 4.5"
|
log_unsupported "copy_file_range not available before Linux 4.5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
||||||
log_unsupported "copy_file_range not available before Linux 4.5"
|
log_unsupported "copy_file_range not available before Linux 4.5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "5.3") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "5.3") ]]; then
|
||||||
log_unsupported "copy_file_range can't copy cross-filesystem before Linux 5.3"
|
log_unsupported "copy_file_range can't copy cross-filesystem before Linux 5.3"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
||||||
log_unsupported "copy_file_range not available before Linux 4.5"
|
log_unsupported "copy_file_range not available before Linux 4.5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
||||||
log_unsupported "copy_file_range not available before Linux 4.5"
|
log_unsupported "copy_file_range not available before Linux 4.5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -77,13 +77,14 @@ log_must zfs create -o recordsize=32K $TESTPOOL/$TESTFS
|
|||||||
log_must dd if=/dev/urandom of=/$TESTPOOL/$TESTFS/file1 bs=32K count=1022 \
|
log_must dd if=/dev/urandom of=/$TESTPOOL/$TESTFS/file1 bs=32K count=1022 \
|
||||||
conv=fsync
|
conv=fsync
|
||||||
sync_pool $TESTPOOL
|
sync_pool $TESTPOOL
|
||||||
log_must clonefile -c /$TESTPOOL/$TESTFS/file1 /$TESTPOOL/$TESTFS/file2
|
log_must clonefile -f /$TESTPOOL/$TESTFS/file1 /$TESTPOOL/$TESTFS/file2
|
||||||
log_must sync
|
log_must sync
|
||||||
|
|
||||||
sync_pool $TESTPOOL
|
sync_pool $TESTPOOL
|
||||||
log_must have_same_content /$TESTPOOL/$TESTFS/file1 /$TESTPOOL/$TESTFS/file2
|
log_must have_same_content /$TESTPOOL/$TESTFS/file1 /$TESTPOOL/$TESTFS/file2
|
||||||
typeset blocks=$(get_same_blocks $TESTPOOL/$TESTFS file1 $TESTPOOL/$TESTFS file2)
|
typeset blocks=$(get_same_blocks $TESTPOOL/$TESTFS file1 $TESTPOOL/$TESTFS file2)
|
||||||
log_must [ "$blocks" = "$(seq -s " " 0 1021)" ]
|
# FreeBSD's seq(1) leaves a trailing space, remove it with sed(1).
|
||||||
|
log_must [ "$blocks" = "$(seq -s " " 0 1021 | sed 's/ $//')" ]
|
||||||
|
|
||||||
log_pass "LWB buffer overflow is not triggered with multiple VDEVs ZIL"
|
log_pass "LWB buffer overflow is not triggered with multiple VDEVs ZIL"
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
||||||
log_unsupported "copy_file_range not available before Linux 4.5"
|
log_unsupported "copy_file_range not available before Linux 4.5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -90,8 +90,8 @@ log_must zpool freeze $TESTPOOL
|
|||||||
#
|
#
|
||||||
# 4. TX_CLONE_RANGE: Clone the file
|
# 4. TX_CLONE_RANGE: Clone the file
|
||||||
#
|
#
|
||||||
log_must clonefile -c /$TESTPOOL/$TESTFS/file1 /$TESTPOOL/$TESTFS/clone1
|
log_must clonefile -f /$TESTPOOL/$TESTFS/file1 /$TESTPOOL/$TESTFS/clone1
|
||||||
log_must clonefile -c /$TESTPOOL/$TESTFS/file2 /$TESTPOOL/$TESTFS/clone2
|
log_must clonefile -f /$TESTPOOL/$TESTFS/file2 /$TESTPOOL/$TESTFS/clone2
|
||||||
|
|
||||||
#
|
#
|
||||||
# 5. Unmount filesystem and export the pool
|
# 5. Unmount filesystem and export the pool
|
||||||
@ -126,6 +126,7 @@ log_must [ "$blocks" = "0 1 2 3" ]
|
|||||||
|
|
||||||
typeset blocks=$(get_same_blocks $TESTPOOL/$TESTFS file2 \
|
typeset blocks=$(get_same_blocks $TESTPOOL/$TESTFS file2 \
|
||||||
$TESTPOOL/$TESTFS clone2)
|
$TESTPOOL/$TESTFS clone2)
|
||||||
log_must [ "$blocks" = "$(seq -s " " 0 2047)" ]
|
# FreeBSD's seq(1) leaves a trailing space, remove it with sed(1).
|
||||||
|
log_must [ "$blocks" = "$(seq -s " " 0 2047 | sed 's/ $//')" ]
|
||||||
|
|
||||||
log_pass $claim
|
log_pass $claim
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
if [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
if is_linux && [[ $(linux_version) -lt $(linux_version "4.5") ]]; then
|
||||||
log_unsupported "copy_file_range not available before Linux 4.5"
|
log_unsupported "copy_file_range not available before Linux 4.5"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -92,8 +92,8 @@ log_must zpool freeze $TESTPOOL
|
|||||||
#
|
#
|
||||||
# 4. TX_CLONE_RANGE: Clone the file
|
# 4. TX_CLONE_RANGE: Clone the file
|
||||||
#
|
#
|
||||||
log_must clonefile -c /$TESTPOOL/$TESTFS/file1 /$TESTPOOL/$TESTFS/clone1
|
log_must clonefile -f /$TESTPOOL/$TESTFS/file1 /$TESTPOOL/$TESTFS/clone1
|
||||||
log_must clonefile -c /$TESTPOOL/$TESTFS/file2 /$TESTPOOL/$TESTFS/clone2
|
log_must clonefile -f /$TESTPOOL/$TESTFS/file2 /$TESTPOOL/$TESTFS/clone2
|
||||||
|
|
||||||
#
|
#
|
||||||
# 5. Unmount filesystem and export the pool
|
# 5. Unmount filesystem and export the pool
|
||||||
@ -128,6 +128,7 @@ log_must [ "$blocks" = "0 1 2 3" ]
|
|||||||
|
|
||||||
typeset blocks=$(get_same_blocks $TESTPOOL/$TESTFS file2 \
|
typeset blocks=$(get_same_blocks $TESTPOOL/$TESTFS file2 \
|
||||||
$TESTPOOL/$TESTFS clone2 $PASSPHRASE)
|
$TESTPOOL/$TESTFS clone2 $PASSPHRASE)
|
||||||
log_must [ "$blocks" = "$(seq -s " " 0 2047)" ]
|
# FreeBSD's seq(1) leaves a trailing space, remove it with sed(1).
|
||||||
|
log_must [ "$blocks" = "$(seq -s " " 0 2047 | sed 's/ $//')" ]
|
||||||
|
|
||||||
log_pass $claim
|
log_pass $claim
|
||||||
|
Loading…
Reference in New Issue
Block a user