On 2019/12/11 上午10:22, Qu Wenruo wrote: > Test btrfs/157 and btrfs/158 are verifying the repair functionality of > supported RAID profile, thus it needs to corrupt the fs data manually using > physical offset of data. > > However that physical offset of data is dependent on chunk layout, which > is further dependent on mkfs, so such physical offset is never reliable. > > And btrfs-progs commit c501c9e3b816 ("btrfs-progs: mkfs: match devid > order to the stripe index") changed the mkfs stripe layout, the golden > output no longer matches the output. > > This patch will remove the physical offset from golden output, > especially since we already have those offsets output in seqres.full. > > Reported-by: Filipe Manana > Signed-off-by: Qu Wenruo > --- > tests/btrfs/157 | 5 +++-- > tests/btrfs/157.out | 4 ---- > tests/btrfs/158 | 4 ++-- > tests/btrfs/158.out | 4 ---- > 4 files changed, 5 insertions(+), 12 deletions(-) > > diff --git a/tests/btrfs/157 b/tests/btrfs/157 > index 7f75c407..9895f1fd 100755 > --- a/tests/btrfs/157 > +++ b/tests/btrfs/157 > @@ -90,8 +90,9 @@ dev3=`echo $SCRATCH_DEV_POOL | awk '{print $3}'` > # step 2: corrupt the 1st and 2nd stripe (stripe 0 and 1) > echo "step 2......simulate bitrot at offset $stripe_0 of device_4($dev4) and offset $stripe_1 of device_3($dev3)" >>$seqres.full > > -$XFS_IO_PROG -f -d -c "pwrite -S 0xbb $stripe_0 64K" $dev4 | _filter_xfs_io > -$XFS_IO_PROG -f -d -c "pwrite -S 0xbb $stripe_1 64K" $dev3 | _filter_xfs_io > +# These stripe offset is mkfs dependent, don't pollute golden output > +$XFS_IO_PROG -f -d -c "pwrite -S 0xbb $stripe_0 64K" $dev4 > /dev/null > +$XFS_IO_PROG -f -d -c "pwrite -S 0xbb $stripe_1 64K" $dev3 > /dev/null Please discard this version, it doesn't take devid into consideration. We need a more flex way to not only get physical offset from a stripe, but also its devid. I'll update the patch to be more flex. Thanks, Qu > > # step 3: read foobar to repair the bitrot > echo "step 3......repair the bitrot" >> $seqres.full > diff --git a/tests/btrfs/157.out b/tests/btrfs/157.out > index 08d592c4..d69c0f1d 100644 > --- a/tests/btrfs/157.out > +++ b/tests/btrfs/157.out > @@ -1,10 +1,6 @@ > QA output created by 157 > wrote 131072/131072 bytes at offset 0 > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 65536/65536 bytes at offset 9437184 > -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 65536/65536 bytes at offset 9437184 > -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > 0200000 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa > * > 0400000 > diff --git a/tests/btrfs/158 b/tests/btrfs/158 > index 603e8bea..99ee7fb7 100755 > --- a/tests/btrfs/158 > +++ b/tests/btrfs/158 > @@ -82,8 +82,8 @@ dev3=`echo $SCRATCH_DEV_POOL | awk '{print $3}'` > # step 2: corrupt the 1st and 2nd stripe (stripe 0 and 1) > echo "step 2......simulate bitrot at offset $stripe_0 of device_4($dev4) and offset $stripe_1 of device_3($dev3)" >>$seqres.full > > -$XFS_IO_PROG -f -d -c "pwrite -S 0xbb $stripe_0 64K" $dev4 | _filter_xfs_io > -$XFS_IO_PROG -f -d -c "pwrite -S 0xbb $stripe_1 64K" $dev3 | _filter_xfs_io > +$XFS_IO_PROG -f -d -c "pwrite -S 0xbb $stripe_0 64K" $dev4 > /dev/null > +$XFS_IO_PROG -f -d -c "pwrite -S 0xbb $stripe_1 64K" $dev3 > /dev/null > > # step 3: scrub filesystem to repair the bitrot > echo "step 3......repair the bitrot" >> $seqres.full > diff --git a/tests/btrfs/158.out b/tests/btrfs/158.out > index 1f5ad3f7..95562f49 100644 > --- a/tests/btrfs/158.out > +++ b/tests/btrfs/158.out > @@ -1,10 +1,6 @@ > QA output created by 158 > wrote 131072/131072 bytes at offset 0 > XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 65536/65536 bytes at offset 9437184 > -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > -wrote 65536/65536 bytes at offset 9437184 > -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > 0000000 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa > * > 0400000 >