diff options
author | Zhao Lei <zhaolei@cn.fujitsu.com> | 2015-09-23 15:19:06 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2015-10-19 11:48:24 +0200 |
commit | 9e0c8e148d5d7240e540f825546a434a24ac2660 (patch) | |
tree | d814eebe037155d019f98e4900de807b9eb42a39 /tests/misc-tests/008-leaf-crossing-stripes/test.sh | |
parent | 5f77daa6a1673b130a566130144c80ce86ed1d0d (diff) |
btrfs-progs: tests: Introduce misc-tests/008-leaf-crossing-stripes
To check is btrfs-convert create bad filesystem with
leaf across stripes.
It is happened in progs version <=v4.1.2, and fixed by patch titled:
btrfs: convert: Avoid allocating metadata extent crossing stripe boundary
which was merged in v4.2.
Notice thar this testcase can not report error in old version of
btrfs-progs, because "btrfs check" can't check this type of error
in those version, but we have another testcase in fsck-tests, to
check is "btrfs check" support this check.
So, the above 2 testcase together can check leaf-crossing-stripes
bug in all versions.
Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
[renamed and other minor changes]
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tests/misc-tests/008-leaf-crossing-stripes/test.sh')
-rwxr-xr-x | tests/misc-tests/008-leaf-crossing-stripes/test.sh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/misc-tests/008-leaf-crossing-stripes/test.sh b/tests/misc-tests/008-leaf-crossing-stripes/test.sh new file mode 100755 index 00000000..03818062 --- /dev/null +++ b/tests/misc-tests/008-leaf-crossing-stripes/test.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# test if btrfs-convert creates a filesystem without leaf crossing stripes + +source $TOP/tests/common + +check_prereq btrfs-convert +check_prereq btrfs + +# In my test, it happened in 514M~560M, 737M~769M, 929M~917M, +# and HAVE_ERROR=((size + 1) / 2) % 2 if size >= 970 +# +SIZE_FROM=514 +SIZE_END=560 +A_PRIME_NUM=17 +for ((size = SIZE_FROM; size <= SIZE_END; size += A_PRIME_NUM)); do + run_check truncate -s "$size"M "$IMAGE" + run_check mkfs.ext4 -F "$IMAGE" + run_check $TOP/btrfs-convert "$IMAGE" + run_check_stdout $TOP/btrfs check "$IMAGE" 2>&1 | + grep -q "crossing stripe boundary" && + _fail "leaf crossing stripes after btrfs-convert" +done + +# grep will expectedly fail +exit 0 |