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@xxxxxxxx>
>> ---
>> 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@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
Attachment:
signature.asc
Description: OpenPGP digital signature
