Re: [PATCH] xfs/424: test xfs_db to ensure type size taken into account with new type

Eric Sandeen
2017-07-14T19:03:28Z

On 07/14/2017 11:47 AM, Bill O'Donnell wrote:
> On Fri, Jul 14, 2017 at 10:42:57AM -0500, Eric Sandeen wrote:

>>> +# for different sector sizes, ensure no CRC errors are falsely reported
>>> +
>>> +# Supported types include: agf, agfl, agi, attr3, bmapbta,
>>> +# bmapbtd, bnobt, cntbt, data, dir3, dqblk, inobt, inodata,
>>> +# inode, log, rtbitmap, rtsummary, sb, symlink, text, finobt.
>>
>> This leaves me wondering why we don't test most of the above ;)
>>
>>> +# For various sector sizes, test some types that involve type size.
>>> +for SECTOR_SIZE in 512 1024 2048 4096; do
>>> + $MKFS_XFS_PROG -f -s size=$SECTOR_SIZE $SCRATCH_DEV > /dev/null
>>> + for TYPE in agf agi agfl sb; do
>>> + DADDR=`$XFS_DB_PROG -c "$TYPE" -c "daddr" $SCRATCH_DEV | _filter_dbval`
>>> + $XFS_DB_PROG -c "$TYPE" -c "daddr 42" -c "daddr $DADDR" -c "type $TYPE" $SCRATCH_DEV
>>
>> Hm is there a reason for the first "-c $TYPE" or even the "daddr 42" in the line just above?
> It's drawn from the reproducer test case.
> The first "-c $TYPE" sets the object, "daddr 42" is an arbitrary address set. Without
> the daddr change and change-back, the test will pass even without the recent xfs_db
> xfsprogs change.

Really? Not here, xfsprogs-4.5.0 :

# xfs_db -c "daddr 2" -c "type agi" fsfile
Metadata CRC error detected at xfs_agi block 0x2/0x200

-Eric