btrfs-progs: tests: Add test image for dev extents beyond device boundary

Now two locations can detect such problem, either by device item
used/total bytes check, or by early dev extents check against device
boundary.

The image is hand-crafted image which uses DATA SINGLE chunk to feed
btrfs check.  As expected, as long as block group item, chunk item,
device used bytes match, older versions check can't detect such problem.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Qu Wenruo 2018-10-08 14:52:41 +08:00 committed by David Sterba
parent 39ea41f00b
commit 81275c8bf5
2 changed files with 20 additions and 0 deletions

View File

@ -0,0 +1,20 @@
#!/bin/bash
#
# Due to DUP chunk allocator bugs, we could allocate DUP chunks while its dev
# extents could exist beyond device boundary.
# And since all related items (block group, chunk, device used bytes) are all
# valid, btrfs check won't report any error.
#
# This test case contains hand crafted minimal image, to test if btrfs check
# can detect and report such error.
source "$TEST_TOP/common"
check_prereq btrfs
check_image() {
run_mustfail "btrfs check failed to detect invalid dev extents" \
"$TOP/btrfs" check "$1"
}
check_all_images