Message ID | 20231213-btrfs-raid-v6-5-913738861069@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | fstests: add tests for btrfs' raid-stripe-tree feature | expand |
On 13/12/2023 17:05, Johannes Thumshirn wrote: > Test a simple 4k write on all RAID profiles currently supported with the > raid-stripe-tree. > > Reviewed-by: Filipe Manana <fdmanana@suse.com> > Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> > --- > tests/btrfs/304 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ > tests/btrfs/304.out | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 116 insertions(+) > > diff --git a/tests/btrfs/304 b/tests/btrfs/304 > new file mode 100755 > index 000000000000..05a4ae32639d > --- /dev/null > +++ b/tests/btrfs/304 > @@ -0,0 +1,58 @@ > +#! /bin/bash > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (c) 2023 Western Digital Cooperation. All Rights Reserved. > +# > +# FS QA Test 304 > +# > +# Test on-disk layout of RAID Stripe Tree Metadata writing 4k to a new file on > +# a pristine file system. > +# > +. ./common/preamble > +_begin_fstest auto quick raid remount volume raid-stripe-tree > + > +. ./common/filter > +. ./common/filter.btrfs > + > +_supported_fs btrfs > +_require_btrfs_command inspect-internal dump-tree > +_require_btrfs_mkfs_feature "raid-stripe-tree" > +_require_scratch_dev_pool 4 > +_require_btrfs_fs_feature "raid_stripe_tree" > +_require_btrfs_fs_feature "free_space_tree" > +_require_btrfs_free_space_tree > +_require_btrfs_no_compress > + > +test _get_page_size -eq 4096 || _notrun "this tests requires 4k pagesize" > + I made the following changes, to make this test-case run. Also, in 30[5,6] ----- diff --git a/tests/btrfs/304 b/tests/btrfs/304 index 05a4ae32639d..f1db52c1ba5c 100755 --- a/tests/btrfs/304 +++ b/tests/btrfs/304 @@ -22,7 +22,7 @@ _require_btrfs_fs_feature "free_space_tree" _require_btrfs_free_space_tree _require_btrfs_no_compress -test _get_page_size -eq 4096 || _notrun "this tests requires 4k pagesize" +test $(_get_page_size) -eq 4096 || _notrun "this tests requires 4k pagesize" test_4k_write() { ------- Thanks, Anand > +test_4k_write() > +{ > + local profile=$1 > + local ndevs=$2 > + > + _scratch_dev_pool_get $ndevs > + > + echo "==== Testing $profile ====" > + _scratch_pool_mkfs -d $profile -m $profile -O raid-stripe-tree > + _scratch_mount > + > + $XFS_IO_PROG -fc "pwrite 0 4k" "$SCRATCH_MNT/foo" | _filter_xfs_io > + > + _scratch_cycle_mount > + md5sum "$SCRATCH_MNT/foo" | _filter_scratch > + > + _scratch_unmount > + > + $BTRFS_UTIL_PROG inspect-internal dump-tree -t raid_stripe $SCRATCH_DEV_POOL |\ > + _filter_btrfs_version | _filter_stripe_tree > + > + _scratch_dev_pool_put > +} > + > +echo "= Test basic 4k write =" > +test_4k_write raid0 2 > +test_4k_write raid1 2 > +test_4k_write raid10 4 > + > +# success, all done > +status=0 > +exit > diff --git a/tests/btrfs/304.out b/tests/btrfs/304.out > new file mode 100644 > index 000000000000..48036efbf0cf > --- /dev/null > +++ b/tests/btrfs/304.out > @@ -0,0 +1,58 @@ > +QA output created by 304 > += Test basic 4k write = > +==== Testing raid0 ==== > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +5fed275e7617a806f94c173746a2a723 SCRATCH_MNT/foo > + > +raid stripe tree key (RAID_STRIPE_TREE ROOT_ITEM 0) > +leaf XXXXXXXXX items X free space XXXXX generation X owner RAID_STRIPE_TREE > +leaf XXXXXXXXX flags 0x1(WRITTEN) backref revision 1 > +checksum stored <CHECKSUM> > +checksum calced <CHECKSUM> > +fs uuid <UUID> > +chunk uuid <UUID> > + item 0 key (XXXXXX RAID_STRIPE 4096) itemoff XXXXX itemsize 24 > + encoding: RAID0 > + stripe 0 devid 1 physical XXXXXXXXX > +total bytes XXXXXXXX > +bytes used XXXXXX > +uuid <UUID> > +==== Testing raid1 ==== > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +5fed275e7617a806f94c173746a2a723 SCRATCH_MNT/foo > + > +raid stripe tree key (RAID_STRIPE_TREE ROOT_ITEM 0) > +leaf XXXXXXXXX items X free space XXXXX generation X owner RAID_STRIPE_TREE > +leaf XXXXXXXXX flags 0x1(WRITTEN) backref revision 1 > +checksum stored <CHECKSUM> > +checksum calced <CHECKSUM> > +fs uuid <UUID> > +chunk uuid <UUID> > + item 0 key (XXXXXX RAID_STRIPE 4096) itemoff XXXXX itemsize 40 > + encoding: RAID1 > + stripe 0 devid 1 physical XXXXXXXXX > + stripe 1 devid 2 physical XXXXXXXXX > +total bytes XXXXXXXX > +bytes used XXXXXX > +uuid <UUID> > +==== Testing raid10 ==== > +wrote 4096/4096 bytes at offset 0 > +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > +5fed275e7617a806f94c173746a2a723 SCRATCH_MNT/foo > + > +raid stripe tree key (RAID_STRIPE_TREE ROOT_ITEM 0) > +leaf XXXXXXXXX items X free space XXXXX generation X owner RAID_STRIPE_TREE > +leaf XXXXXXXXX flags 0x1(WRITTEN) backref revision 1 > +checksum stored <CHECKSUM> > +checksum calced <CHECKSUM> > +fs uuid <UUID> > +chunk uuid <UUID> > + item 0 key (XXXXXX RAID_STRIPE 4096) itemoff XXXXX itemsize 40 > + encoding: RAID10 > + stripe 0 devid 1 physical XXXXXXXXX > + stripe 1 devid 2 physical XXXXXXXXX > +total bytes XXXXXXXX > +bytes used XXXXXX > +uuid <UUID> >
>> +test _get_page_size -eq 4096 || _notrun "this tests requires 4k >> pagesize" >> + > > I made the following changes, to make this test-case run. > Also, in 30[5,6] > > ----- > diff --git a/tests/btrfs/304 b/tests/btrfs/304 > index 05a4ae32639d..f1db52c1ba5c 100755 > --- a/tests/btrfs/304 > +++ b/tests/btrfs/304 > @@ -22,7 +22,7 @@ _require_btrfs_fs_feature "free_space_tree" > _require_btrfs_free_space_tree > _require_btrfs_no_compress > > -test _get_page_size -eq 4096 || _notrun "this tests requires 4k pagesize" > +test $(_get_page_size) -eq 4096 || _notrun "this tests requires 4k > pagesize" > > test_4k_write() > { > ------- With the above fixed and the trailing white spaces fixed Reviewed-by: Anand Jain <anand.jain@oracle.com> for the patchset.
On 29.12.23 13:08, Anand Jain wrote: > >>> +test _get_page_size -eq 4096 || _notrun "this tests requires 4k >>> pagesize" >>> + >> >> I made the following changes, to make this test-case run. >> Also, in 30[5,6] >> >> ----- >> diff --git a/tests/btrfs/304 b/tests/btrfs/304 >> index 05a4ae32639d..f1db52c1ba5c 100755 >> --- a/tests/btrfs/304 >> +++ b/tests/btrfs/304 >> @@ -22,7 +22,7 @@ _require_btrfs_fs_feature "free_space_tree" >> _require_btrfs_free_space_tree >> _require_btrfs_no_compress >> >> -test _get_page_size -eq 4096 || _notrun "this tests requires 4k pagesize" >> +test $(_get_page_size) -eq 4096 || _notrun "this tests requires 4k >> pagesize" >> >> test_4k_write() >> { >> ------- > > With the above fixed and the trailing white spaces fixed > > Reviewed-by: Anand Jain <anand.jain@oracle.com> > > for the patchset. > Thanks Anand
diff --git a/tests/btrfs/304 b/tests/btrfs/304 new file mode 100755 index 000000000000..05a4ae32639d --- /dev/null +++ b/tests/btrfs/304 @@ -0,0 +1,58 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2023 Western Digital Cooperation. All Rights Reserved. +# +# FS QA Test 304 +# +# Test on-disk layout of RAID Stripe Tree Metadata writing 4k to a new file on +# a pristine file system. +# +. ./common/preamble +_begin_fstest auto quick raid remount volume raid-stripe-tree + +. ./common/filter +. ./common/filter.btrfs + +_supported_fs btrfs +_require_btrfs_command inspect-internal dump-tree +_require_btrfs_mkfs_feature "raid-stripe-tree" +_require_scratch_dev_pool 4 +_require_btrfs_fs_feature "raid_stripe_tree" +_require_btrfs_fs_feature "free_space_tree" +_require_btrfs_free_space_tree +_require_btrfs_no_compress + +test _get_page_size -eq 4096 || _notrun "this tests requires 4k pagesize" + +test_4k_write() +{ + local profile=$1 + local ndevs=$2 + + _scratch_dev_pool_get $ndevs + + echo "==== Testing $profile ====" + _scratch_pool_mkfs -d $profile -m $profile -O raid-stripe-tree + _scratch_mount + + $XFS_IO_PROG -fc "pwrite 0 4k" "$SCRATCH_MNT/foo" | _filter_xfs_io + + _scratch_cycle_mount + md5sum "$SCRATCH_MNT/foo" | _filter_scratch + + _scratch_unmount + + $BTRFS_UTIL_PROG inspect-internal dump-tree -t raid_stripe $SCRATCH_DEV_POOL |\ + _filter_btrfs_version | _filter_stripe_tree + + _scratch_dev_pool_put +} + +echo "= Test basic 4k write =" +test_4k_write raid0 2 +test_4k_write raid1 2 +test_4k_write raid10 4 + +# success, all done +status=0 +exit diff --git a/tests/btrfs/304.out b/tests/btrfs/304.out new file mode 100644 index 000000000000..48036efbf0cf --- /dev/null +++ b/tests/btrfs/304.out @@ -0,0 +1,58 @@ +QA output created by 304 += Test basic 4k write = +==== Testing raid0 ==== +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +5fed275e7617a806f94c173746a2a723 SCRATCH_MNT/foo + +raid stripe tree key (RAID_STRIPE_TREE ROOT_ITEM 0) +leaf XXXXXXXXX items X free space XXXXX generation X owner RAID_STRIPE_TREE +leaf XXXXXXXXX flags 0x1(WRITTEN) backref revision 1 +checksum stored <CHECKSUM> +checksum calced <CHECKSUM> +fs uuid <UUID> +chunk uuid <UUID> + item 0 key (XXXXXX RAID_STRIPE 4096) itemoff XXXXX itemsize 24 + encoding: RAID0 + stripe 0 devid 1 physical XXXXXXXXX +total bytes XXXXXXXX +bytes used XXXXXX +uuid <UUID> +==== Testing raid1 ==== +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +5fed275e7617a806f94c173746a2a723 SCRATCH_MNT/foo + +raid stripe tree key (RAID_STRIPE_TREE ROOT_ITEM 0) +leaf XXXXXXXXX items X free space XXXXX generation X owner RAID_STRIPE_TREE +leaf XXXXXXXXX flags 0x1(WRITTEN) backref revision 1 +checksum stored <CHECKSUM> +checksum calced <CHECKSUM> +fs uuid <UUID> +chunk uuid <UUID> + item 0 key (XXXXXX RAID_STRIPE 4096) itemoff XXXXX itemsize 40 + encoding: RAID1 + stripe 0 devid 1 physical XXXXXXXXX + stripe 1 devid 2 physical XXXXXXXXX +total bytes XXXXXXXX +bytes used XXXXXX +uuid <UUID> +==== Testing raid10 ==== +wrote 4096/4096 bytes at offset 0 +XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +5fed275e7617a806f94c173746a2a723 SCRATCH_MNT/foo + +raid stripe tree key (RAID_STRIPE_TREE ROOT_ITEM 0) +leaf XXXXXXXXX items X free space XXXXX generation X owner RAID_STRIPE_TREE +leaf XXXXXXXXX flags 0x1(WRITTEN) backref revision 1 +checksum stored <CHECKSUM> +checksum calced <CHECKSUM> +fs uuid <UUID> +chunk uuid <UUID> + item 0 key (XXXXXX RAID_STRIPE 4096) itemoff XXXXX itemsize 40 + encoding: RAID10 + stripe 0 devid 1 physical XXXXXXXXX + stripe 1 devid 2 physical XXXXXXXXX +total bytes XXXXXXXX +bytes used XXXXXX +uuid <UUID>