btrfs-progs: tests: Add testcase for rootdir inline extent size
Add a test case for mkfs --rootdir, using files with different file sizes to check if invalid large inline extent could exist. Signed-off-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
b79681fe6d
commit
7edeb29c34
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
# Regression test for mkfs.btrfs --rootdir with inline file extents
|
||||
# For any large inline file extent, btrfs check could already report it
|
||||
|
||||
source "$TEST_TOP/common"
|
||||
|
||||
check_global_prereq fallocate
|
||||
check_prereq mkfs.btrfs
|
||||
|
||||
prepare_test_dev
|
||||
|
||||
tmp=$(mktemp -d --tmpdir btrfs-progs-mkfs.rootdirXXXXXXX)
|
||||
|
||||
pagesize=$(getconf PAGESIZE)
|
||||
create_file()
|
||||
{
|
||||
local size=$1
|
||||
# Reuse size as filename
|
||||
run_check fallocate -l $size "$tmp/$size"
|
||||
}
|
||||
|
||||
test_mkfs_rootdir()
|
||||
{
|
||||
nodesize=$1
|
||||
run_check "$TOP/mkfs.btrfs" --nodesize $nodesize -f --rootdir "$tmp" \
|
||||
"$TEST_DEV"
|
||||
run_check $SUDO_HELPER "$TOP/btrfs" check "$TEST_DEV"
|
||||
}
|
||||
|
||||
# Use power of 2 from 512 to 64K (maximum node size) as base file size
|
||||
for i in 512 1024 2048 4096 8192 16384 32768; do
|
||||
create_file $(($i - 102))
|
||||
# 101 is the overhead size for max inline extent
|
||||
create_file $(($i - 101))
|
||||
create_file $(($i - 100))
|
||||
|
||||
create_file $(($i - 1))
|
||||
create_file $i
|
||||
create_file $(($i + 1))
|
||||
done
|
||||
|
||||
for nodesize in 4096 8192 16384 32768 65536; do
|
||||
if [ $nodesize -ge $pagesize ]; then
|
||||
test_mkfs_rootdir $nodesize
|
||||
fi
|
||||
done
|
||||
rm -rf -- "$tmp"
|
Loading…
Reference in New Issue