From bb305ae832c4864af85339a3d4947394d4edfb1d Mon Sep 17 00:00:00 2001 From: Qu Wenruo Date: Fri, 16 Jun 2017 09:43:23 +0800 Subject: [PATCH] btrfs-progs: tests: Add test case to check file hole extents with NO_HOLES flag Add test case which we have NO_HOLES incompat flag while still have hole file extent. This can be created by enabling NO_HOLES feature on an existing filesystem, which lowmem mode would cause false alert for it. Signed-off-by: Qu Wenruo [ minor adjustments ] Signed-off-by: David Sterba --- tests/fsck-tests/025-file-extents/test.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/fsck-tests/025-file-extents/test.sh b/tests/fsck-tests/025-file-extents/test.sh index e4bc4247..ebe8a305 100755 --- a/tests/fsck-tests/025-file-extents/test.sh +++ b/tests/fsck-tests/025-file-extents/test.sh @@ -5,8 +5,10 @@ source "$TOP/tests/common" check_prereq btrfs check_prereq mkfs.btrfs +check_prereq btrfstune check_global_prereq dd check_global_prereq fallocate +check_global_prereq truncate setup_root_helper prepare_test_dev 128M @@ -38,5 +40,21 @@ test_compressed_inline_extent() run_check "$TOP/btrfs" check "$TEST_DEV" } +# File extent hole with NO_HOLES incompat feature set. +# Lowmem mode will cause a false alert as it doesn't allow any file hole +# extents, while we can set NO_HOLES at anytime we want, it's definitely a +# false alert +test_hole_extent_with_no_holes_flag() +{ + run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f "$TEST_DEV" + run_check_mount_test_dev + + run_check $SUDO_HELPER truncate -s 16K "$TEST_MNT/tmp" + run_check_umount_test_dev + run_check $SUDO_HELPER "$TOP/btrfstune" -n "$TEST_DEV" + run_check "$TOP/btrfs" check "$TEST_DEV" +} + test_paritical_write_into_prealloc test_compressed_inline_extent +test_hole_extent_with_no_holes_flag