Message ID | 20171027005324.17950-2-wqu@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Oct 27, 2017 at 08:53:24AM +0800, Qu Wenruo wrote: > New test case to test if the minimal device size given by "mkfs.btrfs" > failure case is valid. > > Signed-off-by: Qu Wenruo <wqu@suse.com> > --- > tests/mkfs-tests/010-small-image/test.sh | 49 ++++++++++++++++++++++++++++++++ > 1 file changed, 49 insertions(+) > create mode 100755 tests/mkfs-tests/010-small-image/test.sh > > diff --git a/tests/mkfs-tests/010-small-image/test.sh b/tests/mkfs-tests/010-small-image/test.sh > new file mode 100755 > index 000000000000..f55760df061f > --- /dev/null > +++ b/tests/mkfs-tests/010-small-image/test.sh > @@ -0,0 +1,49 @@ > +#!/bin/bash > +# test if the reported minimal size of mkfs.btrfs is valid > + > +source "$TOP"/tests/common > + > +check_prereq mkfs.btrfs > +check_prereq btrfs > + > +setup_root_helper > + > +do_test() > +{ > + # Well, 1M small enough to fail, we just use the output > + # to get the minimal device size > + prepare_test_dev 1M > + output=$(run_mustfail_stdout "mkfs.btrfs for small image" \ > + "$TOP"/mkfs.btrfs -f $@ "$TEST_DEV") > + good_size=$(echo "$output" | grep -oP "(?<=is )\d+") > + > + prepare_test_dev "$good_size" > + run_check "$TOP"/mkfs.btrfs -f $@ "$TEST_DEV" > + run_check $SUDO_HELPER mount "$TEST_DEV" "$TEST_MNT" > + run_check $SUDO_HELPER umount "$TEST_MNT" There are helpers for the default mounts, you can use them to save some typing: run_check_mount_test_dev and run_check_umount_test_dev. > +} > + > +do_test -n 4k -m single -d single I don't seem to get this test to work, it fails with this in the log: === Entering btrfs-progs/tests/mkfs-tests/010-small-image $TEST_DEV not given, use btrfs-progs/test/test.img as fallback ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img btrfs-progs v4.13.3-61-g0615ffa351c2 See http://btrfs.wiki.kernel.org for more information. failed (expected): btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img btrfs-progs v4.13.3-61-g0615ffa351c2 See http://btrfs.wiki.kernel.org for more information. Label: (null) UUID: b9b55b1b-4096-46ee-acd0-15151a8050d6 Node size: 4096 Sector size: 4096 Filesystem size: 16.00MiB Block group profiles: Data: single 1.56MiB Metadata: single 1.56MiB System: single 4.00MiB SSD detected: no Incompat features: extref, skinny-metadata Number of devices: 1 Devices: ID SIZE PATH 1 16.00MiB btrfs-progs/tests/test.img ############### root_helper mount btrfs-progs/tests/test.img btrfs-progs/tests/mnt ############### root_helper umount btrfs-progs/tests/mnt ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img btrfs-progs v4.13.3-61-g0615ffa351c2 See http://btrfs.wiki.kernel.org for more information. failed (expected): btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img ERROR: not enough free space to allocate chunk btrfs-progs v4.13.3-61-g0615ffa351c2 See http://btrfs.wiki.kernel.org for more information. failed: btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img test failed for case 010-small-image --- The output is unexpected and does not contain the minimal size. The tested branch is current devel (7141063af3c9a423dda), your mkfs --rootdir rework patches are there. Can you please have a look? -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2017年10月28日 00:59, David Sterba wrote: > On Fri, Oct 27, 2017 at 08:53:24AM +0800, Qu Wenruo wrote: >> New test case to test if the minimal device size given by "mkfs.btrfs" >> failure case is valid. >> >> Signed-off-by: Qu Wenruo <wqu@suse.com> >> --- >> tests/mkfs-tests/010-small-image/test.sh | 49 ++++++++++++++++++++++++++++++++ >> 1 file changed, 49 insertions(+) >> create mode 100755 tests/mkfs-tests/010-small-image/test.sh >> >> diff --git a/tests/mkfs-tests/010-small-image/test.sh b/tests/mkfs-tests/010-small-image/test.sh >> new file mode 100755 >> index 000000000000..f55760df061f >> --- /dev/null >> +++ b/tests/mkfs-tests/010-small-image/test.sh >> @@ -0,0 +1,49 @@ >> +#!/bin/bash >> +# test if the reported minimal size of mkfs.btrfs is valid >> + >> +source "$TOP"/tests/common >> + >> +check_prereq mkfs.btrfs >> +check_prereq btrfs >> + >> +setup_root_helper >> + >> +do_test() >> +{ >> + # Well, 1M small enough to fail, we just use the output >> + # to get the minimal device size >> + prepare_test_dev 1M >> + output=$(run_mustfail_stdout "mkfs.btrfs for small image" \ >> + "$TOP"/mkfs.btrfs -f $@ "$TEST_DEV") >> + good_size=$(echo "$output" | grep -oP "(?<=is )\d+") >> + >> + prepare_test_dev "$good_size" >> + run_check "$TOP"/mkfs.btrfs -f $@ "$TEST_DEV" >> + run_check $SUDO_HELPER mount "$TEST_DEV" "$TEST_MNT" >> + run_check $SUDO_HELPER umount "$TEST_MNT" > > There are helpers for the default mounts, you can use them to save some > typing: run_check_mount_test_dev and run_check_umount_test_dev. > >> +} >> + >> +do_test -n 4k -m single -d single > > I don't seem to get this test to work, it fails with this in the log: Strange, it passed without problem on my box. === Entering /home/adam/btrfs/btrfs-progs/tests/mkfs-tests/010-small-image $TEST_DEV not given, use /home/adam/btrfs/btrfs-progs/test/test.img as fallback ############### /home/adam/btrfs/btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single /home/adam/btrfs/btrfs-progs/tests/test.img btrfs-progs v4.13.2 See http://btrfs.wiki.kernel.org for more information. failed (expected): /home/adam/btrfs/btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single /home/adam/btrfs/btrfs-progs/tests/test.img ############### /home/adam/btrfs/btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single /home/adam/btrfs/btrfs-progs/tests/test.img btrfs-progs v4.13.2 See http://btrfs.wiki.kernel.org for more information. Label: (null) UUID: 04213076-9678-420b-b748-5e5b6394e025 Node size: 4096 Sector size: 4096 Filesystem size: 44.00MiB Block group profiles: Data: single 4.38MiB Metadata: single 4.38MiB System: single 4.00MiB SSD detected: no Incompat features: extref, skinny-metadata Number of devices: 1 Devices: ID SIZE PATH 1 44.00MiB /home/adam/btrfs/btrfs-progs/tests/test.img ############### root_helper mount /home/adam/btrfs/btrfs-progs/tests/test.img /home/adam/btrfs/btrfs-progs/tests/mnt ############### root_helper umount /home/adam/btrfs/btrfs-progs/tests/mnt ############### /home/adam/btrfs/btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup /home/adam/btrfs/btrfs-progs/tests/test.img btrfs-progs v4.13.2 See http://btrfs.wiki.kernel.org for more information. failed (expected): /home/adam/btrfs/btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup /home/adam/btrfs/btrfs-progs/tests/test.img ############### /home/adam/btrfs/btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup /home/adam/btrfs/btrfs-progs/tests/test.img btrfs-progs v4.13.2 See http://btrfs.wiki.kernel.org for more information. Label: (null) UUID: f7c3a0db-abf1-4061-99f0-1028ac713ed6 Node size: 4096 Sector size: 4096 Filesystem size: 164.00MiB Block group profiles: Data: DUP 64.00MiB Metadata: single 8.00MiB System: single 4.00MiB SSD detected: no Incompat features: extref, skinny-metadata Number of devices: 1 Devices: ID SIZE PATH 1 164.00MiB /home/adam/btrfs/btrfs-progs/tests/test.img ############### root_helper mount /home/adam/btrfs/btrfs-progs/tests/test.img /home/adam/btrfs/btrfs-progs/tests/mnt ############### root_helper umount /home/adam/btrfs/btrfs-progs/tests/mnt Maybe it's related to the preparation patch for that? Like the prepare_test_dev() function modification? Thanks, Qu > > === Entering btrfs-progs/tests/mkfs-tests/010-small-image > $TEST_DEV not given, use btrfs-progs/test/test.img as fallback > ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img > btrfs-progs v4.13.3-61-g0615ffa351c2 > See http://btrfs.wiki.kernel.org for more information. > > failed (expected): btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img > ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img > btrfs-progs v4.13.3-61-g0615ffa351c2 > See http://btrfs.wiki.kernel.org for more information. > > Label: (null) > UUID: b9b55b1b-4096-46ee-acd0-15151a8050d6 > Node size: 4096 > Sector size: 4096 > Filesystem size: 16.00MiB > Block group profiles: > Data: single 1.56MiB > Metadata: single 1.56MiB > System: single 4.00MiB > SSD detected: no > Incompat features: extref, skinny-metadata > Number of devices: 1 > Devices: > ID SIZE PATH > 1 16.00MiB btrfs-progs/tests/test.img > > ############### root_helper mount btrfs-progs/tests/test.img btrfs-progs/tests/mnt > ############### root_helper umount btrfs-progs/tests/mnt > ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img > btrfs-progs v4.13.3-61-g0615ffa351c2 > See http://btrfs.wiki.kernel.org for more information. > > failed (expected): btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img > ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img > ERROR: not enough free space to allocate chunk > btrfs-progs v4.13.3-61-g0615ffa351c2 > See http://btrfs.wiki.kernel.org for more information. > > failed: btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img > test failed for case 010-small-image > --- > > The output is unexpected and does not contain the minimal size. The tested > branch is current devel (7141063af3c9a423dda), your mkfs --rootdir rework > patches are there. Can you please have a look? > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
On 2017年10月28日 00:59, David Sterba wrote: > On Fri, Oct 27, 2017 at 08:53:24AM +0800, Qu Wenruo wrote: >> New test case to test if the minimal device size given by "mkfs.btrfs" >> failure case is valid. >> >> Signed-off-by: Qu Wenruo <wqu@suse.com> >> --- >> tests/mkfs-tests/010-small-image/test.sh | 49 ++++++++++++++++++++++++++++++++ >> 1 file changed, 49 insertions(+) >> create mode 100755 tests/mkfs-tests/010-small-image/test.sh >> >> diff --git a/tests/mkfs-tests/010-small-image/test.sh b/tests/mkfs-tests/010-small-image/test.sh >> new file mode 100755 >> index 000000000000..f55760df061f >> --- /dev/null >> +++ b/tests/mkfs-tests/010-small-image/test.sh >> @@ -0,0 +1,49 @@ >> +#!/bin/bash >> +# test if the reported minimal size of mkfs.btrfs is valid >> + >> +source "$TOP"/tests/common >> + >> +check_prereq mkfs.btrfs >> +check_prereq btrfs >> + >> +setup_root_helper >> + >> +do_test() >> +{ >> + # Well, 1M small enough to fail, we just use the output >> + # to get the minimal device size >> + prepare_test_dev 1M >> + output=$(run_mustfail_stdout "mkfs.btrfs for small image" \ >> + "$TOP"/mkfs.btrfs -f $@ "$TEST_DEV") >> + good_size=$(echo "$output" | grep -oP "(?<=is )\d+") >> + >> + prepare_test_dev "$good_size" >> + run_check "$TOP"/mkfs.btrfs -f $@ "$TEST_DEV" >> + run_check $SUDO_HELPER mount "$TEST_DEV" "$TEST_MNT" >> + run_check $SUDO_HELPER umount "$TEST_MNT" > > There are helpers for the default mounts, you can use them to save some > typing: run_check_mount_test_dev and run_check_umount_test_dev. > >> +} >> + >> +do_test -n 4k -m single -d single > > I don't seem to get this test to work, it fails with this in the log: Forgot to mention, the test case is for minimal-device-size fix patchset: Enhance minimal device size calculation to fix mkfs failure on small file Considering I sent too many patchset recently and most of them have dependency, should I resend a big patchset to address the dependency? IIRC the dependency should be: rootdir rework -> rootdir refactor -> minimal device size fix (including test cases) And later mkfs qgroup support also depends on rootdir rework (just conflicts, not code dependency) Thanks, Qu > > === Entering btrfs-progs/tests/mkfs-tests/010-small-image > $TEST_DEV not given, use btrfs-progs/test/test.img as fallback > ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img > btrfs-progs v4.13.3-61-g0615ffa351c2 > See http://btrfs.wiki.kernel.org for more information. > > failed (expected): btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img > ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d single btrfs-progs/tests/test.img > btrfs-progs v4.13.3-61-g0615ffa351c2 > See http://btrfs.wiki.kernel.org for more information. > > Label: (null) > UUID: b9b55b1b-4096-46ee-acd0-15151a8050d6 > Node size: 4096 > Sector size: 4096 > Filesystem size: 16.00MiB > Block group profiles: > Data: single 1.56MiB > Metadata: single 1.56MiB > System: single 4.00MiB > SSD detected: no > Incompat features: extref, skinny-metadata > Number of devices: 1 > Devices: > ID SIZE PATH > 1 16.00MiB btrfs-progs/tests/test.img > > ############### root_helper mount btrfs-progs/tests/test.img btrfs-progs/tests/mnt > ############### root_helper umount btrfs-progs/tests/mnt > ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img > btrfs-progs v4.13.3-61-g0615ffa351c2 > See http://btrfs.wiki.kernel.org for more information. > > failed (expected): btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img > ############### btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img > ERROR: not enough free space to allocate chunk > btrfs-progs v4.13.3-61-g0615ffa351c2 > See http://btrfs.wiki.kernel.org for more information. > > failed: btrfs-progs/mkfs.btrfs -f -n 4k -m single -d dup btrfs-progs/tests/test.img > test failed for case 010-small-image > --- > > The output is unexpected and does not contain the minimal size. The tested > branch is current devel (7141063af3c9a423dda), your mkfs --rootdir rework > patches are there. Can you please have a look? > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
diff --git a/tests/mkfs-tests/010-small-image/test.sh b/tests/mkfs-tests/010-small-image/test.sh new file mode 100755 index 000000000000..f55760df061f --- /dev/null +++ b/tests/mkfs-tests/010-small-image/test.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# test if the reported minimal size of mkfs.btrfs is valid + +source "$TOP"/tests/common + +check_prereq mkfs.btrfs +check_prereq btrfs + +setup_root_helper + +do_test() +{ + # Well, 1M small enough to fail, we just use the output + # to get the minimal device size + prepare_test_dev 1M + output=$(run_mustfail_stdout "mkfs.btrfs for small image" \ + "$TOP"/mkfs.btrfs -f $@ "$TEST_DEV") + good_size=$(echo "$output" | grep -oP "(?<=is )\d+") + + prepare_test_dev "$good_size" + run_check "$TOP"/mkfs.btrfs -f $@ "$TEST_DEV" + run_check $SUDO_HELPER mount "$TEST_DEV" "$TEST_MNT" + run_check $SUDO_HELPER umount "$TEST_MNT" +} + +do_test -n 4k -m single -d single +do_test -n 4k -m single -d dup +do_test -n 4k -m dup -d single +do_test -n 4k -m dup -d dup + +do_test -n 8k -m single -d single +do_test -n 8k -m single -d dup +do_test -n 8k -m dup -d single +do_test -n 8k -m dup -d dup + +do_test -n 16k -m single -d single +do_test -n 16k -m single -d dup +do_test -n 16k -m dup -d single +do_test -n 16k -m dup -d dup + +do_test -n 32k -m single -d single +do_test -n 32k -m single -d dup +do_test -n 32k -m dup -d single +do_test -n 32k -m dup -d dup + +do_test -n 64k -m single -d single +do_test -n 64k -m single -d dup +do_test -n 64k -m dup -d single +do_test -n 64k -m dup -d dup
New test case to test if the minimal device size given by "mkfs.btrfs" failure case is valid. Signed-off-by: Qu Wenruo <wqu@suse.com> --- tests/mkfs-tests/010-small-image/test.sh | 49 ++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 tests/mkfs-tests/010-small-image/test.sh