diff options
author | Dimitri John Ledkov <xnox@ubuntu.com> | 2017-07-31 14:54:24 +0100 |
---|---|---|
committer | Dimitri John Ledkov <xnox@ubuntu.com> | 2017-07-31 14:54:24 +0100 |
commit | 6a0440391da7a99ffab94ccc66264af9b5f3ce34 (patch) | |
tree | 1c7cf4f07b08c4965ab19819ebce367be16fb980 /tests/fsck-tests/025-file-extents | |
parent | 5f2e2384443a09e3f1fec71940e9e32b70789102 (diff) |
New upstream release.
Diffstat (limited to 'tests/fsck-tests/025-file-extents')
-rwxr-xr-x | tests/fsck-tests/025-file-extents/test.sh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/fsck-tests/025-file-extents/test.sh b/tests/fsck-tests/025-file-extents/test.sh new file mode 100755 index 00000000..ebe8a305 --- /dev/null +++ b/tests/fsck-tests/025-file-extents/test.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Confirm btrfs check can check file extents without causing false alert + +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 + +# Do some write into a large prealloc range +# Lowmem mode can report missing csum due to wrong csum range +test_paritical_write_into_prealloc() +{ + run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f "$TEST_DEV" + run_check_mount_test_dev + + run_check $SUDO_HELPER fallocate -l 128K "$TEST_MNT/file" + sync + run_check $SUDO_HELPER dd conv=notrunc if=/dev/zero of="$TEST_MNT/file" bs=1K count=64 + run_check_umount_test_dev + run_check "$TOP/btrfs" check "$TEST_DEV" +} + +# Inline compressed file extent +# Lowmem mode can cause silent error without any error message +# due to too restrict check on inline extent size +test_compressed_inline_extent() +{ + run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f "$TEST_DEV" + run_check_mount_test_dev -o compress=lzo,max_inline=2048 + + run_check $SUDO_HELPER dd conv=notrunc if=/dev/null of="$TEST_MNT/file" bs=1K count=1 + run_check_umount_test_dev + 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 |