Re: [PATCH] tests: btrfs/237: skip test on devices with conventional zones

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On 26/6/25 21:18, Johannes Thumshirn wrote:
From: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>

Skip btrfs/237 on devices with conventional zones, as we cannot force data
allocation on a sequential zone at the moment and conventional zones
cannot be reset, making the test invalid.

Furthermore limit the output of get_data_bg() and get_data_bg_physical()
to the first address.

Signed-off-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx>
---
  tests/btrfs/237 | 9 +++++++--
  1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/tests/btrfs/237 b/tests/btrfs/237
index 2839f6e4..25ed7bcf 100755
--- a/tests/btrfs/237
+++ b/tests/btrfs/237
@@ -28,7 +28,8 @@ get_data_bg()
  {
  	$BTRFS_UTIL_PROG inspect-internal dump-tree -t CHUNK $SCRATCH_DEV |\
  		grep -A 1 "CHUNK_ITEM" | grep -B 1 "type DATA" |\
-		grep -Eo "CHUNK_ITEM [[:digit:]]+" | cut -d ' ' -f 2
+		grep -Eo "CHUNK_ITEM [[:digit:]]+" | cut -d ' ' -f 2 |\
+		head -n 1
  }
get_data_bg_physical()
@@ -36,9 +37,13 @@ get_data_bg_physical()
  	# Assumes SINGLE data profile
  	$BTRFS_UTIL_PROG inspect-internal dump-tree -t CHUNK $SCRATCH_DEV |\
  		grep -A 4 CHUNK_ITEM | grep -A 3 'type DATA\|SINGLE' |\
-	        grep -Eo 'offset [[:digit:]]+'| cut -d ' ' -f 2
+	        grep -Eo 'offset [[:digit:]]+'| cut -d ' ' -f 2 |\
+		head -n 1
  }
+$BLKZONE_PROG report $SCRATCH_DEV | grep -q -e "nw" && \
+	_notrun "test is unreliable on devices with conventional zones"
+
  sdev="$(_short_dev $SCRATCH_DEV)"
  zone_size=$(($(cat /sys/block/${sdev}/queue/chunk_sectors) << 9))
  fssize=$((zone_size * 16))

Johannes,

The test case still fails on a zone device with no conventional zones.
However, if we use tail -1, it works fine—with or without a
conventional zone.


$ modprobe scsi_debug zbc=host-managed zone_size_mb=256 zone_cap_mb=256 zone_nr_conv=0 dev_size_mb=4096 num_tgts=2

$ ./check btrfs/237
::
btrfs/237 5s ... [failed, exit status 1]- output mismatch (see /Volumes/work/ws/fstests/results//btrfs/237.out.bad)
    --- tests/btrfs/237.out	2025-07-01 17:41:30.943699725 +0800
+++ /Volumes/work/ws/fstests/results//btrfs/237.out.bad 2025-07-12 21:39:03.756275219 +0800
    @@ -1,2 +1,3 @@
     QA output created by 237
    -Silence is golden
    +Old wptr still at 0x073338
    +(see /Volumes/work/ws/fstests/results//btrfs/237.full for details)


Following diff fixes the issue.

-----
index 2839f6e42797..7f460c1415bc 100755
--- a/tests/btrfs/237
+++ b/tests/btrfs/237
@@ -28,7 +28,8 @@ get_data_bg()
 {
$BTRFS_UTIL_PROG inspect-internal dump-tree -t CHUNK $SCRATCH_DEV |\
                grep -A 1 "CHUNK_ITEM" | grep -B 1 "type DATA" |\
-               grep -Eo "CHUNK_ITEM [[:digit:]]+" | cut -d ' ' -f 2
+               grep -Eo "CHUNK_ITEM [[:digit:]]+" | cut -d ' ' -f 2 |\
+               tail -1
 }

 get_data_bg_physical()
@@ -36,7 +37,8 @@ get_data_bg_physical()
        # Assumes SINGLE data profile
$BTRFS_UTIL_PROG inspect-internal dump-tree -t CHUNK $SCRATCH_DEV |\
                grep -A 4 CHUNK_ITEM | grep -A 3 'type DATA\|SINGLE' |\
-               grep -Eo 'offset [[:digit:]]+'| cut -d ' ' -f 2
+               grep -Eo 'offset [[:digit:]]+'| cut -d ' ' -f 2 |\
+               tail -1
 }

 sdev="$(_short_dev $SCRATCH_DEV)"





[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux