diff options
author | Dimitri John Ledkov <xnox@ubuntu.com> | 2017-02-13 11:24:33 +0000 |
---|---|---|
committer | Dimitri John Ledkov <xnox@ubuntu.com> | 2017-02-13 11:24:33 +0000 |
commit | 4305d024938113df5d73021a09eb2a991f54ca2f (patch) | |
tree | d9e7ecc9db14bcc1394607a9e6c644a8b93e9bea /tests/fsck-tests | |
parent | e693f0e4ffb1776a05b78264ee3d93d5f07efede (diff) |
New upstream release Closes: #849353, #817806, #854915, #845473
Diffstat (limited to 'tests/fsck-tests')
-rwxr-xr-x | tests/fsck-tests/013-extent-tree-rebuild/test.sh | 5 | ||||
-rw-r--r-- | tests/fsck-tests/022-qgroup-rescan-halfway/qgroup_rescan_halfway.raw.xz | bin | 0 -> 59360 bytes | |||
-rwxr-xr-x | tests/fsck-tests/022-qgroup-rescan-halfway/test.sh | 19 | ||||
-rw-r--r-- | tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz | bin | 0 -> 55708 bytes | |||
-rwxr-xr-x | tests/fsck-tests/023-qgroup-stack-overflow/test.sh | 17 | ||||
-rwxr-xr-x | tests/fsck-tests/024-clear-space-cache/test.sh | 48 |
6 files changed, 86 insertions, 3 deletions
diff --git a/tests/fsck-tests/013-extent-tree-rebuild/test.sh b/tests/fsck-tests/013-extent-tree-rebuild/test.sh index ff7d28e5..37bdcd9c 100755 --- a/tests/fsck-tests/013-extent-tree-rebuild/test.sh +++ b/tests/fsck-tests/013-extent-tree-rebuild/test.sh @@ -3,7 +3,6 @@ source $TOP/tests/common check_prereq btrfs-corrupt-block -check_prereq btrfs-debug-tree check_prereq mkfs.btrfs check_prereq btrfs @@ -16,7 +15,7 @@ test_extent_tree_rebuild() run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $TEST_DEV run_check_mount_test_dev - run_check $SUDO_HELPER cp -aR /lib/modules/`uname -r`/ $TEST_MNT + generate_dataset small for i in `seq 1 100`;do run_check $SUDO_HELPER $TOP/btrfs sub snapshot $TEST_MNT \ @@ -25,7 +24,7 @@ test_extent_tree_rebuild() run_check_umount_test_dev # get extent root bytenr - extent_root_bytenr=`$SUDO_HELPER $TOP/btrfs-debug-tree -r $TEST_DEV | \ + extent_root_bytenr=`$SUDO_HELPER $TOP/btrfs inspect-internal dump-tree -r $TEST_DEV | \ grep extent | awk '{print $7}'` if [ -z $extent_root_bytenr ];then _fail "fail to get extent root bytenr" diff --git a/tests/fsck-tests/022-qgroup-rescan-halfway/qgroup_rescan_halfway.raw.xz b/tests/fsck-tests/022-qgroup-rescan-halfway/qgroup_rescan_halfway.raw.xz Binary files differnew file mode 100644 index 00000000..8cb620f7 --- /dev/null +++ b/tests/fsck-tests/022-qgroup-rescan-halfway/qgroup_rescan_halfway.raw.xz diff --git a/tests/fsck-tests/022-qgroup-rescan-halfway/test.sh b/tests/fsck-tests/022-qgroup-rescan-halfway/test.sh new file mode 100755 index 00000000..1dc8f8fc --- /dev/null +++ b/tests/fsck-tests/022-qgroup-rescan-halfway/test.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# check whether btrfsck can detect running qgroup rescan + +source $TOP/tests/common + +check_prereq btrfs + +check_image() { + local image + + image=$1 + run_check_stdout $TOP/btrfs check "$image" 2>&1 | \ + grep -q "Counts for qgroup id" + if [ $? -eq 0 ]; then + _fail "Btrfs check doesn't detect rescan correctly" + fi +} + +check_all_images diff --git a/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz b/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz Binary files differnew file mode 100644 index 00000000..a0759739 --- /dev/null +++ b/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz diff --git a/tests/fsck-tests/023-qgroup-stack-overflow/test.sh b/tests/fsck-tests/023-qgroup-stack-overflow/test.sh new file mode 100755 index 00000000..a304eac5 --- /dev/null +++ b/tests/fsck-tests/023-qgroup-stack-overflow/test.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# +# Check whether btrfs check quota verify will cause stack overflow. +# This is caused by lack of handling of tree reloc tree. +# Fixed by patch: +# btrfs-progs: Fix stack overflow for checking qgroup on tree reloc tree + +source $TOP/tests/common + +check_prereq btrfs + +check_image() +{ + run_check $TOP/btrfs check "$1" +} + +check_all_images diff --git a/tests/fsck-tests/024-clear-space-cache/test.sh b/tests/fsck-tests/024-clear-space-cache/test.sh new file mode 100755 index 00000000..2945ae87 --- /dev/null +++ b/tests/fsck-tests/024-clear-space-cache/test.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# confirm that clearing space cache works + +source $TOP/tests/common + +check_prereq btrfs +check_prereq mkfs.btrfs + +setup_root_helper +prepare_test_dev 1G + +run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $TEST_DEV +run_check_mount_test_dev + +# Create files that takes at least 3 data chunks, while +# can still be removed to create free space inside one chunk. + +for i in $(seq 0 6); do + run_check $SUDO_HELPER dd if=/dev/zero of=$TEST_MNT/file_${i} bs=1M \ + count=64 > /dev/null 2>&1 +done +sync + +# Remove file 1 3 5 to create holes +for i in 1 3 5; do + run_check $SUDO_HELPER rm $TEST_MNT/file_${i} +done + +sync + +run_check_umount_test_dev + +# Clear space cache and re-check fs +run_check $TOP/btrfs check --clear-space-cache v1 $TEST_DEV +run_check $TOP/btrfs check $TEST_DEV + +# Manually recheck space cache and super space cache generation +run_check_stdout $TOP/btrfs inspect-internal dump-tree -t root $TEST_DEV | \ + grep -q FREE_SPACE +if [ $? -eq 0 ]; then + _fail "clear space cache doesn't clear all space cache" +fi + +run_check_stdout $TOP/btrfs inspect-internal dump-super $TEST_DEV | + grep -q 'cache_generation.*18446744073709551615' +if [ $? -ne 0 ]; then + _fail "clear space cache doesn't set cache_generation correctly" +fi |