mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
2831b8b43b
btrfsprogs v4.5.3 changed the formatting of some error messages. This patch extends the filter for btrfs prop to handle those. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Reviewed-by: Eryu Guan <eguan@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
93 lines
2.1 KiB
Plaintext
93 lines
2.1 KiB
Plaintext
# Filters for btrfs command output
|
|
|
|
. ./common/filter
|
|
|
|
# Some, but not all, commands emit "Btrfs <version>"
|
|
_filter_btrfs_version()
|
|
{
|
|
sed -e "s/^[Bb]trfs.*//g"
|
|
}
|
|
|
|
_filter_devid()
|
|
{
|
|
sed -e "s/\(devid\)\s\+[0-9]\+/\1 <DEVID>/g"
|
|
}
|
|
|
|
# If passed a number as first arg, filter that number of devices
|
|
# If passed a UUID as second arg, filter that exact UUID
|
|
_filter_btrfs_filesystem_show()
|
|
{
|
|
if [ ! -z $1 ]; then
|
|
NUMDEVS=$1
|
|
NUM_SUBST="<EXACTNUM>"
|
|
else
|
|
NUMDEVS="[0-9]\+"
|
|
NUM_SUBST="<NUM>"
|
|
fi
|
|
|
|
UUID=""
|
|
if [ ! -z $2 ]; then
|
|
UUID=$2
|
|
fi
|
|
|
|
# the uniq collapses all device lines into 1
|
|
_filter_uuid $UUID | _filter_scratch | _filter_scratch_pool | \
|
|
_filter_size | _filter_btrfs_version | _filter_devid | \
|
|
_filter_zero_size | \
|
|
sed -e "s/\(Total devices\) $NUMDEVS/\1 $NUM_SUBST/g" | \
|
|
uniq
|
|
}
|
|
|
|
# This eliminates all numbers, and shows only unique lines,
|
|
# to accomodate a varying nr. of devices.
|
|
# If given an argument, make sure we saw that many devices
|
|
# in total.
|
|
_filter_btrfs_device_stats()
|
|
{
|
|
if [ ! -z $1 ]; then
|
|
NUMDEVS=$1
|
|
UNIQ_OPT="-c"
|
|
else
|
|
NUMDEVS="thiswillnotmatch"
|
|
UNIQ_OPT=""
|
|
fi
|
|
|
|
_filter_scratch | _filter_scratch_pool | \
|
|
sed -e "s/[0-9]\+$/<NUM>/g" | sort | uniq $UNIQ_OPT | \
|
|
sed -e "s/ *$NUMDEVS /<NUMDEVS> /g"
|
|
}
|
|
|
|
_filter_transaction_commit() {
|
|
sed -e "/Transaction commit: none (default)/d" | \
|
|
sed -e "s/Delete subvolume (.*commit):/Delete subvolume/g"
|
|
}
|
|
|
|
_filter_btrfs_subvol_delete()
|
|
{
|
|
_filter_scratch | _filter_transaction_commit
|
|
}
|
|
|
|
_filter_btrfs_compress_property()
|
|
{
|
|
sed -e "s/compression=\(lzo\|zlib\)/COMPRESSION=XXX/g"
|
|
}
|
|
|
|
# filter error messages from btrfs prop, optionally verify against $1
|
|
# recognized message(s):
|
|
# "object is not compatible with property: label"
|
|
# "invalid value for property:{, value}"
|
|
# "failed to {get,set} compression for $PATH[.:]: Invalid argument"
|
|
_filter_btrfs_prop_error()
|
|
{
|
|
if ! [ -z "$1" ]; then
|
|
sed -e "s#\(compatible with property\): $1#\1#" \
|
|
-e "s#^\(.*failed to [sg]et compression for $1\)[:.] \(.*\)#\1: \2#"
|
|
else
|
|
sed -e "s#^\(.*compatible with property\).*#\1#" \
|
|
-e "s#^\(.*invalid value for property\)[:.].*#\1#"
|
|
fi
|
|
}
|
|
|
|
# make sure this script returns success
|
|
/bin/true
|