From 21f94b20a9af3bd2417886298a8b891c30fcf464 Mon Sep 17 00:00:00 2001 From: Shin'ichiro Kawasaki Date: Mon, 8 Aug 2022 10:44:07 +0900 Subject: [PATCH] zbd/009: check mkfs.btrfs version mkfs.btrfs versions from 5.17 to 5.18.x fail to format zoned block devices without option '-m single' [1]. Skip the test case when mkfs.btrfs has the versions. [1] https://lore.kernel.org/linux-btrfs/cover.1659426744.git.wqu@suse.com/ Signed-off-by: Shin'ichiro Kawasaki --- tests/zbd/009 | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/zbd/009 b/tests/zbd/009 index af430e7..483cbf6 100755 --- a/tests/zbd/009 +++ b/tests/zbd/009 @@ -8,12 +8,36 @@ DESCRIPTION="test gap zone support with BTRFS" QUICK=1 +# compare 3 digits versions (e.g., 5.18.1) +ver_a_is_before_b() { + local a1 a2 a3 b1 b2 b3 + + IFS='.' read -r a1 a2 a3 <<< "$1" + IFS='.' read -r b1 b2 b3 <<< "$2" + (((a1 * 65536 + a2 * 256 + a3) < (b1 * 65536 + b2 * 256 + b3))) +} + +# mkfs.btrfs version from 5.17 to 5.18.x fails to format zoned block devices +have_good_mkfs_btrfs() { + local ver + + ver=$(mkfs.btrfs -V | sed 's/[^[:digit:]]*//') + if ver_a_is_before_b "$ver" 5.17; then + return 0 + elif ver_a_is_before_b "$ver" 5.19; then + SKIP_REASONS+=("mkfs.btrfs ver $ver fails to format zoned block devices") + return 1 + fi + return 0 +} + requires() { _have_fio _have_driver btrfs _have_module_param scsi_debug zone_cap_mb _have_program mkfs.btrfs _have_scsi_debug + have_good_mkfs_btrfs } test() { -- 2.49.0