Files
apfstests/common/filter.btrfs
T
Stefan Behrens 0d3bbd1894 xfstests: fix btrfs/006 for 10+ devices in SCRATCH_DEV_POOL
One problem was the output of "uniq -c" which added spaces depending
on the size of the count value (e.g. one space less for 10+ devices).

The second problem was that "btrfs fi show" was doing the same:
"devid %4llu size %s used %s path %s".

Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
Reviewed-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
2013-08-28 08:41:33 -05:00

61 lines
1.2 KiB
Plaintext

# Filters for btrfs command output
. ./common/filter
# Some, but not all, commands emit "Btrfs <version>"
_filter_btrfs_version()
{
sed -e "s/^Btrfs.*//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 | \
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"
}
# make sure this script returns success
/bin/true