xfs
[Top] [All Lists]

Re: [PATCH] xfstests: update filters and output of btrfs/006

To: Eric Sandeen <sandeen@xxxxxxxxxxx>
Subject: Re: [PATCH] xfstests: update filters and output of btrfs/006
From: Stefan Behrens <sbehrens@xxxxxxxxxxxxxxxx>
Date: Fri, 23 Aug 2013 15:06:23 +0200
Cc: xfs@xxxxxxxxxxx, linux-btrfs@xxxxxxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <520E5D07.6090708@xxxxxxxxxxx>
References: <1376672566-5446-1-git-send-email-sbehrens@xxxxxxxxxxxxxxxx> <520E5D07.6090708@xxxxxxxxxxx>
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
On Fri, 16 Aug 2013 12:10:31 -0500, Eric Sandeen wrote:
> On 8/16/13 12:02 PM, Stefan Behrens wrote:
>> The btrfs-progs tools changed the output:
>> - 100GiB instead of 100GB
>> - The number of spaces was changed
> 
> ugh.
> 
>>
>> Signed-off-by: Stefan Behrens <sbehrens@xxxxxxxxxxxxxxxx>
>> ---
>>  common/filter       |  2 +-
>>  common/filter.btrfs |  3 ++-
>>  tests/btrfs/006     |  6 +++---
>>  tests/btrfs/006.out | 36 ++++++++++++++++++------------------
>>  4 files changed, 24 insertions(+), 23 deletions(-)
>>
>> diff --git a/common/filter b/common/filter
>> index dbb1674..ee738ca 100644
>> --- a/common/filter
>> +++ b/common/filter
>> @@ -262,7 +262,7 @@ _filter_uuid()
>>  # Filter out sizes like 6.14MB etc
>>  _filter_size()
>>  {
>> -    sed -e "s/[0-9\.]\+\s\?[b|k|m|g|t][b]\?/<SIZE>/ig"
>> +    sed -e "s/[0-9\.]\+\s\?[b|k|m|g|t][i]\?[b]\?/<SIZE>/ig"
>>  }
> 
> makes sense
> 
> But for the rest, is the output change intentional, or sloppiness/accidental?
> 
> If it's really intentional, then:
> 
> Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>
> 

Thanks for the review, Eric!

Since this commit is not yet added to the repo, I just took the time to
create a cleaner fix.

The tools didn't change the number of spaces in the output. The root
cause was that I had 11 devices in SCRATCH_DEV_POOL for the first time.
And this caused changes in the number of spaces in the output wherever
things like %4d was used.

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".

Please scratch this patch out, I'll send two better patches instead
which address the real problems.


>>  # Convert string read from stdin like 128K to bytes and print it to stdout
>> diff --git a/common/filter.btrfs b/common/filter.btrfs
>> index e9a2bc2..1584596 100644
>> --- a/common/filter.btrfs
>> +++ b/common/filter.btrfs
>> @@ -33,6 +33,7 @@ _filter_btrfs_filesystem_show()
>>      # the uniq collapses all device lines into 1
>>      _filter_uuid $UUID | _filter_scratch | _filter_scratch_pool | \
>>      _filter_size | _filter_btrfs_version | _filter_devid | \
>> +    _filter_spaces | \
>>      sed -e "s/\(Total devices\) $NUMDEVS/\1 $NUM_SUBST/g" | \
>>      uniq
>>  }
>> @@ -51,7 +52,7 @@ _filter_btrfs_device_stats()
>>              UNIQ_OPT=""
>>      fi
>>  
>> -    _filter_scratch | _filter_scratch_pool | \
>> +    _filter_scratch | _filter_scratch_pool | _filter_spaces | \
>>      sed -e "s/[0-9]\+$/<NUM>/g" | sort | uniq $UNIQ_OPT | \
>>      sed -e "s/$NUMDEVS /<NUMDEVS> /g"
>>  }
>> diff --git a/tests/btrfs/006 b/tests/btrfs/006
>> index 9f7beff..f323cc4 100755
>> --- a/tests/btrfs/006
>> +++ b/tests/btrfs/006
>> @@ -82,13 +82,13 @@ echo "== Sync filesystem"
>>  $BTRFS_UTIL_PROG filesystem sync $SCRATCH_MNT | _filter_scratch
>>  
>>  echo "== Show device stats by mountpoint"
>> -$BTRFS_UTIL_PROG device stats $SCRATCH_MNT | _filter_btrfs_device_stats 
>> $TOTAL_DEVS
>> +$BTRFS_UTIL_PROG device stats $SCRATCH_MNT | _filter_btrfs_device_stats 
>> $TOTAL_DEVS | _filter_spaces
>>  echo "== Show device stats by first/scratch dev"
>>  $BTRFS_UTIL_PROG device stats $SCRATCH_DEV | _filter_btrfs_device_stats
>>  echo "== Show device stats by second dev"
>> -$BTRFS_UTIL_PROG device stats $FIRST_POOL_DEV | sed -e 
>> "s,$FIRST_POOL_DEV,FIRST_POOL_DEV,g"
>> +$BTRFS_UTIL_PROG device stats $FIRST_POOL_DEV | sed -e 
>> "s,$FIRST_POOL_DEV,FIRST_POOL_DEV,g" | _filter_spaces
>>  echo "== Show device stats by last dev"
>> -$BTRFS_UTIL_PROG device stats $LAST_POOL_DEV | sed -e 
>> "s,$LAST_POOL_DEV,LAST_POOL_DEV,g"
>> +$BTRFS_UTIL_PROG device stats $LAST_POOL_DEV | sed -e 
>> "s,$LAST_POOL_DEV,LAST_POOL_DEV,g" | _filter_spaces
>>  
>>  # success, all done
>>  status=0
>> diff --git a/tests/btrfs/006.out b/tests/btrfs/006.out
>> index ab33b7e..413a5a8 100644
>> --- a/tests/btrfs/006.out
>> +++ b/tests/btrfs/006.out
>> @@ -4,38 +4,38 @@
>>  TestLabel.006
>>  == Mount.
>>  == Show filesystem by label
>> -Label: 'TestLabel.006'  uuid: <UUID>
>> +Label: 'TestLabel.006' uuid: <UUID>
>>      Total devices <EXACTNUM> FS bytes used <SIZE>
>> -    devid     <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> +    devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>>  
>>  == Show filesystem by UUID
>> -Label: 'TestLabel.006'  uuid: <EXACTUUID>
>> +Label: 'TestLabel.006' uuid: <EXACTUUID>
>>      Total devices <EXACTNUM> FS bytes used <SIZE>
>> -    devid     <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>> +    devid <DEVID> size <SIZE> used <SIZE> path SCRATCH_DEV
>>  
>>  == Sync filesystem
>>  FSSync 'SCRATCH_MNT'
>>  == Show device stats by mountpoint
>> -      <NUMDEVS> [SCRATCH_DEV].corruption_errs <NUM>
>> -      <NUMDEVS> [SCRATCH_DEV].flush_io_errs   <NUM>
>> -      <NUMDEVS> [SCRATCH_DEV].generation_errs <NUM>
>> -      <NUMDEVS> [SCRATCH_DEV].read_io_errs    <NUM>
>> -      <NUMDEVS> [SCRATCH_DEV].write_io_errs   <NUM>
>> + <NUMDEVS> [SCRATCH_DEV].corruption_errs <NUM>
>> + <NUMDEVS> [SCRATCH_DEV].flush_io_errs <NUM>
>> + <NUMDEVS> [SCRATCH_DEV].generation_errs <NUM>
>> + <NUMDEVS> [SCRATCH_DEV].read_io_errs <NUM>
>> + <NUMDEVS> [SCRATCH_DEV].write_io_errs <NUM>
>>  == Show device stats by first/scratch dev
>>  [SCRATCH_DEV].corruption_errs <NUM>
>> -[SCRATCH_DEV].flush_io_errs   <NUM>
>> +[SCRATCH_DEV].flush_io_errs <NUM>
>>  [SCRATCH_DEV].generation_errs <NUM>
>> -[SCRATCH_DEV].read_io_errs    <NUM>
>> -[SCRATCH_DEV].write_io_errs   <NUM>
>> +[SCRATCH_DEV].read_io_errs <NUM>
>> +[SCRATCH_DEV].write_io_errs <NUM>
>>  == Show device stats by second dev
>> -[FIRST_POOL_DEV].write_io_errs   0
>> -[FIRST_POOL_DEV].read_io_errs    0
>> -[FIRST_POOL_DEV].flush_io_errs   0
>> +[FIRST_POOL_DEV].write_io_errs 0
>> +[FIRST_POOL_DEV].read_io_errs 0
>> +[FIRST_POOL_DEV].flush_io_errs 0
>>  [FIRST_POOL_DEV].corruption_errs 0
>>  [FIRST_POOL_DEV].generation_errs 0
>>  == Show device stats by last dev
>> -[LAST_POOL_DEV].write_io_errs   0
>> -[LAST_POOL_DEV].read_io_errs    0
>> -[LAST_POOL_DEV].flush_io_errs   0
>> +[LAST_POOL_DEV].write_io_errs 0
>> +[LAST_POOL_DEV].read_io_errs 0
>> +[LAST_POOL_DEV].flush_io_errs 0
>>  [LAST_POOL_DEV].corruption_errs 0
>>  [LAST_POOL_DEV].generation_errs 0
>>
> 

<Prev in Thread] Current Thread [Next in Thread>