# copy_file_range() is not supported by all kernels
#
cfr_reason = 'Kernel copy_file_range support required'
-cfr_cross_reason = 'copy_file_range(2) cross-filesystem needs kernel 5.3+'
+
+if sys.platform.startswith('freebsd'):
+ cfr_cross_reason = 'copy_file_range(2) cross-filesystem needs FreeBSD 14+'
+else:
+ cfr_cross_reason = 'copy_file_range(2) cross-filesystem needs kernel 5.3+'
#
# These tests are known to fail, thus we use this list to prevent these
'pool_checkpoint/checkpoint_indirect': ['FAIL', 12623],
'resilver/resilver_restart_001': ['FAIL', known_reason],
'snapshot/snapshot_002_pos': ['FAIL', '14831'],
+ 'bclone/bclone_crossfs_corner_cases': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_crossfs_corner_cases_limited':
+ ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_crossfs_data': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_crossfs_embedded': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_crossfs_hole': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_diffprops_all': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_diffprops_checksum': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_diffprops_compress': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_diffprops_copies': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_diffprops_recordsize': ['SKIP', cfr_cross_reason],
+ 'bclone/bclone_prop_sync': ['SKIP', cfr_cross_reason],
+ 'block_cloning/block_cloning_cross_enc_dataset':
+ ['SKIP', cfr_cross_reason],
+ 'block_cloning/block_cloning_copyfilerange_cross_dataset':
+ ['SKIP', cfr_cross_reason]
})
elif sys.platform.startswith('linux'):
maybe.update({
[ "$(printf "$1\n$2" | sort -V | tail -n1)" = "$1" ]
}
-# Linux kernel version comparison function
-#
-# $1 Linux version ("4.10", "2.6.32") or blank for installed Linux version
-#
-# Used for comparison: if [ $(linux_version) -ge $(linux_version "2.6.32") ]
-#
-function linux_version
+# Helper function used by linux_version() and freebsd_version()
+function kernel_version
{
typeset ver="$1"
echo $((version * 100000 + major * 1000 + minor))
}
+# Linux kernel version comparison function
+#
+# $1 Linux version ("4.10", "2.6.32") or blank for installed Linux version
+#
+# Used for comparison: if [ $(linux_version) -ge $(linux_version "2.6.32") ]
+function linux_version {
+ kernel_version "$1"
+}
+
+# FreeBSD version comparison function
+#
+# $1 FreeBSD version ("13.2", "14.0") or blank for installed FreeBSD version
+#
+# Used for comparison: if [ $(freebsd_version) -ge $(freebsd_version "13.2") ]
+function freebsd_version {
+ kernel_version "$1"
+}
+
# Determine if this is a Linux test system
#
# Return 0 if platform Linux, 1 if otherwise