diff options
Diffstat (limited to 'tests/fsck-tests')
-rwxr-xr-x | tests/fsck-tests/015-tree-reloc-tree/test.sh | 16 | ||||
-rwxr-xr-x | tests/fsck-tests/020-extent-ref-cases/test.sh | 5 | ||||
-rw-r--r-- | tests/fsck-tests/020-extent-ref-cases/tree_reloc_for_data_reloc.img.xz (renamed from tests/fsck-tests/015-tree-reloc-tree/tree_reloc_for_data_reloc.img.xz) | bin | 2112 -> 2112 bytes | |||
-rw-r--r-- | tests/fsck-tests/020-extent-ref-cases/tree_reloc_for_fs_tree.img.xz (renamed from tests/fsck-tests/015-tree-reloc-tree/tree_reloc_for_fs_tree.img.xz) | bin | 2424 -> 2424 bytes | |||
-rw-r--r-- | tests/fsck-tests/026-bad-dir-item-name/description.txt | 41 | ||||
-rwxr-xr-x | tests/fsck-tests/026-bad-dir-item-name/test.sh | 13 | ||||
-rw-r--r-- | tests/fsck-tests/036-bad-dev-extents/over_dev_boundary.img.xz | bin | 0 -> 1640 bytes | |||
-rwxr-xr-x | tests/fsck-tests/036-bad-dev-extents/test.sh | 20 | ||||
-rwxr-xr-x | tests/fsck-tests/037-freespacetree-repair/test.sh | 7 |
9 files changed, 71 insertions, 31 deletions
diff --git a/tests/fsck-tests/015-tree-reloc-tree/test.sh b/tests/fsck-tests/015-tree-reloc-tree/test.sh deleted file mode 100755 index 5d9d5122..00000000 --- a/tests/fsck-tests/015-tree-reloc-tree/test.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -# Make sure btrfs check won't report any false alerts for valid image with -# reloc tree. -# -# Also due to the short life span of reloc tree, save the as dump example for -# later usage. - -source "$TEST_TOP/common" - -check_prereq btrfs - -check_image() { - run_check "$TOP/btrfs" check "$1" -} - -check_all_images diff --git a/tests/fsck-tests/020-extent-ref-cases/test.sh b/tests/fsck-tests/020-extent-ref-cases/test.sh index a1bf75b1..e7a55728 100755 --- a/tests/fsck-tests/020-extent-ref-cases/test.sh +++ b/tests/fsck-tests/020-extent-ref-cases/test.sh @@ -14,6 +14,11 @@ # Containing a block group and its first extent at # the beginning of leaf. # Which caused false alert for lowmem mode. +# +# Special cases with some rare backref types +# * reloc tree +# For both fs tree and data reloc tree. +# Special for its backref pointing to itself and its short life span. source "$TEST_TOP/common" diff --git a/tests/fsck-tests/015-tree-reloc-tree/tree_reloc_for_data_reloc.img.xz b/tests/fsck-tests/020-extent-ref-cases/tree_reloc_for_data_reloc.img.xz Binary files differindex 66d8bde6..66d8bde6 100644 --- a/tests/fsck-tests/015-tree-reloc-tree/tree_reloc_for_data_reloc.img.xz +++ b/tests/fsck-tests/020-extent-ref-cases/tree_reloc_for_data_reloc.img.xz diff --git a/tests/fsck-tests/015-tree-reloc-tree/tree_reloc_for_fs_tree.img.xz b/tests/fsck-tests/020-extent-ref-cases/tree_reloc_for_fs_tree.img.xz Binary files differindex 22af324b..22af324b 100644 --- a/tests/fsck-tests/015-tree-reloc-tree/tree_reloc_for_fs_tree.img.xz +++ b/tests/fsck-tests/020-extent-ref-cases/tree_reloc_for_fs_tree.img.xz diff --git a/tests/fsck-tests/026-bad-dir-item-name/description.txt b/tests/fsck-tests/026-bad-dir-item-name/description.txt new file mode 100644 index 00000000..2bdb0f81 --- /dev/null +++ b/tests/fsck-tests/026-bad-dir-item-name/description.txt @@ -0,0 +1,41 @@ +"default_case.img.xz" contains the fs with the following tree dump of fs tree: + + [snip] + item 2 key (256 DIR_ITEM 751495445) itemoff 16019 itemsize 92 + location key (259 INODE_ITEM 0) type FILE + transid 9 data_len 0 name_len 13 + name: foor.WvG1c1Td + ^^^^^^^^^^^^^ Hash doesn't match with key + location key (260 INODE_ITEM 0) type FILE + transid 12 data_len 0 name_len 19 + name: user.J3__T_Km3dVsW_ + item 3 key (256 DIR_INDEX 4) itemoff 15976 itemsize 43 + location key (259 INODE_ITEM 0) type FILE + transid 9 data_len 0 name_len 13 + name: foor.WvG1c1Td + item 4 key (256 DIR_INDEX 5) itemoff 15927 itemsize 49 + location key (260 INODE_ITEM 0) type FILE + transid 12 data_len 0 name_len 19 + name: user.J3__T_Km3dVsW_ + item 5 key (259 INODE_ITEM 0) itemoff 15767 itemsize 160 + generation 9 transid 9 size 0 nbytes 0 + block group 0 mode 100644 links 1 uid 0 gid 0 rdev 0 + sequence 1 flags 0x0(none) + atime 1499844359.341125147 (2017-07-12 15:25:59) + ctime 1499844359.341125147 (2017-07-12 15:25:59) + mtime 1499844359.341125147 (2017-07-12 15:25:59) + otime 1499844359.341125147 (2017-07-12 15:25:59) + item 6 key (259 INODE_REF 256) itemoff 15744 itemsize 23 + index 4 namelen 13 name: foor.WvG1c1Td + item 7 key (260 INODE_ITEM 0) itemoff 15584 itemsize 160 + generation 12 transid 12 size 0 nbytes 0 + block group 0 mode 100644 links 1 uid 0 gid 0 rdev 0 + sequence 1 flags 0x0(none) + atime 1499844544.931130070 (2017-07-12 15:29:04) + ctime 1499844544.931130070 (2017-07-12 15:29:04) + mtime 1499844544.931130070 (2017-07-12 15:29:04) + otime 1499844544.931130070 (2017-07-12 15:29:04) + item 8 key (260 INODE_REF 256) itemoff 15555 itemsize 29 + index 5 namelen 19 name: user.J3__T_Km3dVsW_ + +Test case is going to check if btrfs check can detect and repair it. diff --git a/tests/fsck-tests/026-bad-dir-item-name/test.sh b/tests/fsck-tests/026-bad-dir-item-name/test.sh deleted file mode 100755 index a38bf045..00000000 --- a/tests/fsck-tests/026-bad-dir-item-name/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# -# confirm whether check detects name and hash mismatch in dir_item - -source "$TEST_TOP/common" - -check_prereq btrfs - -image=$(extract_image "./default_case.img.xz") - -run_mustfail "dir_item hash mismatch not found" "$TOP/btrfs" check "$image" - -rm -f "$image" diff --git a/tests/fsck-tests/036-bad-dev-extents/over_dev_boundary.img.xz b/tests/fsck-tests/036-bad-dev-extents/over_dev_boundary.img.xz Binary files differnew file mode 100644 index 00000000..47cb2a70 --- /dev/null +++ b/tests/fsck-tests/036-bad-dev-extents/over_dev_boundary.img.xz diff --git a/tests/fsck-tests/036-bad-dev-extents/test.sh b/tests/fsck-tests/036-bad-dev-extents/test.sh new file mode 100755 index 00000000..88ea0aec --- /dev/null +++ b/tests/fsck-tests/036-bad-dev-extents/test.sh @@ -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 diff --git a/tests/fsck-tests/037-freespacetree-repair/test.sh b/tests/fsck-tests/037-freespacetree-repair/test.sh index 261d7ccb..a0bdf9e2 100755 --- a/tests/fsck-tests/037-freespacetree-repair/test.sh +++ b/tests/fsck-tests/037-freespacetree-repair/test.sh @@ -59,8 +59,11 @@ run_check "$TOP/mkfs.btrfs" -n 4k -f "$TEST_DEV" run_check_mount_test_dev -oclear_cache,space_cache=v2 # create files which will populate the FST -for i in {1..3000}; do - run_check $SUDO_HELPER fallocate -l 4k "$TEST_MNT/file.$i" +for i in {0..9}; do + for j in {1..300}; do + run_check $SUDO_HELPER fallocate -l 4k "$TEST_MNT/file.$j$i" & + done + wait done run_check_umount_test_dev |