From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org, fstests@vger.kernel.org
Subject: [PATCH] fstests: filter.btrfs: handle detailed missing device report better
Date: Wed, 9 Nov 2022 14:22:36 +0800 [thread overview]
Message-ID: <20221109062236.42253-1-wqu@suse.com> (raw)
[FAILURES]
The following btrfs test cases failed with newer btrfs-progs:
- btrfs/197
- btrfs/198
- btrfs/254
They all fail due to output mismatch like the following:
Label: none uuid: <UUID>
Total devices <NUM> FS bytes used <SIZE>
devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
- *** Some devices missing
+ devid <DEVID> size 0 used 0 path MISSING
[CAUSE]
Since btrfs-progs commit 957a79c9b016 ("btrfs-progs: fi show: print
missing device for a mounted file system"), we output the detailed info
of a missing device if "btrfs filesystem show" is executed using
"-m <mnt>" option.
Such detailed output no longer follows the old format, thus causing the
output mismatch.
[FIX]
Update _filter_btrfs_filesystem_show() to handle detailed missing
device by:
- Buffer the output first
- Output the first two lines
Which is always label/uuid and the total device accounting.
- Replace the detailed missing device line with old output
- Sort (in reverse order) and uniq the device list
By this we can handle both old and new output correctly.
Although this means we lacks the ability to detect mutltiple missing
devices, thankfully the involved test cases are not checking this yet.
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
common/filter.btrfs | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/common/filter.btrfs b/common/filter.btrfs
index d4169cc6..c570d366 100644
--- a/common/filter.btrfs
+++ b/common/filter.btrfs
@@ -35,7 +35,17 @@ _filter_btrfs_filesystem_show()
_filter_size | _filter_btrfs_version | _filter_devid | \
_filter_zero_size | \
sed -e "s/\(Total devices\) $NUMDEVS/\1 $NUM_SUBST/g" | \
- uniq
+ uniq > $tmp.btrfs_filesystem_show
+
+ # The first two lines are Label/UUID and total devices
+ head -n 2 $tmp.btrfs_filesystem_show
+
+ # The remaining is the device list, first filter out the detailed
+ # missing device to the generic one.
+ # Then sort and uniq the result
+ tail -n +3 $tmp.btrfs_filesystem_show | \
+ sed -e "s/devid <DEVID> size 0 used 0 path MISSING/*** Some devices missing/" | \
+ sort -r | uniq
}
# This eliminates all numbers, and shows only unique lines,
--
2.38.0
next reply other threads:[~2022-11-09 6:22 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-09 6:22 Qu Wenruo [this message]
2022-11-09 10:52 ` [PATCH] fstests: filter.btrfs: handle detailed missing device report better Filipe Manana
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221109062236.42253-1-wqu@suse.com \
--to=wqu@suse.com \
--cc=fstests@vger.kernel.org \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox