summaryrefslogtreecommitdiff
path: root/tests/fsck-tests
diff options
context:
space:
mode:
authorDimitri John Ledkov <xnox@ubuntu.com>2018-01-11 15:44:55 +0000
committerDimitri John Ledkov <xnox@ubuntu.com>2018-01-11 15:44:55 +0000
commitd78d642bffff6ea49d62c19f26052ed6d3dcc467 (patch)
treedb0f470018ee6f4b93fb8fd601401fa157e5dbe3 /tests/fsck-tests
parentb309a4dfbe8130b9fef087df59dd18a487a9c18e (diff)
New upstream release.
Diffstat (limited to 'tests/fsck-tests')
-rw-r--r--tests/fsck-tests/004-no-dir-index/.lowmem_repairable0
-rw-r--r--tests/fsck-tests/009-no-dir-item-or-index/.lowmem_repairable0
-rw-r--r--tests/fsck-tests/010-no-rootdir-inode-item/.lowmem_repairable0
-rw-r--r--tests/fsck-tests/011-no-inode-item/.lowmem_repairable0
-rwxr-xr-xtests/fsck-tests/013-extent-tree-rebuild/test.sh2
-rw-r--r--tests/fsck-tests/016-wrong-inode-nbytes/.lowmem_repairable0
-rw-r--r--tests/fsck-tests/017-missing-all-file-extent/.lowmem_repairable0
-rw-r--r--tests/fsck-tests/020-extent-ref-cases/inline_regular_coexist.imgbin0 -> 4096 bytes
-rw-r--r--tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_only.imgbin0 -> 4096 bytes
-rw-r--r--tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_with_shared_leaf.imgbin0 -> 19456 bytes
-rw-r--r--tests/fsck-tests/020-extent-ref-cases/ref_count_mismatch_false_alert.imgbin0 -> 4096 bytes
-rw-r--r--tests/fsck-tests/020-extent-ref-cases/shared_block_ref_only.raw.xzbin0 -> 217204 bytes
-rwxr-xr-xtests/fsck-tests/020-extent-ref-cases/test.sh17
-rwxr-xr-xtests/fsck-tests/021-partially-dropped-snapshot-case/test.sh16
-rwxr-xr-xtests/fsck-tests/024-clear-space-cache/test.sh2
-rw-r--r--tests/fsck-tests/027-bad-extent-inline-ref-type/bad-extent-inline-ref-type.raw.xzbin0 -> 17144 bytes
-rwxr-xr-xtests/fsck-tests/027-tree-reloc-tree/test.sh19
-rw-r--r--tests/fsck-tests/027-tree-reloc-tree/tree_reloc_for_data_reloc.img.xzbin0 -> 2112 bytes
-rw-r--r--tests/fsck-tests/027-tree-reloc-tree/tree_reloc_for_fs_tree.img.xzbin0 -> 2424 bytes
-rw-r--r--tests/fsck-tests/028-unaligned-super-dev-sizes/dev_and_super_mismatch_unaligned.raw.xzbin0 -> 21536 bytes
-rwxr-xr-xtests/fsck-tests/028-unaligned-super-dev-sizes/test.sh26
21 files changed, 65 insertions, 17 deletions
diff --git a/tests/fsck-tests/004-no-dir-index/.lowmem_repairable b/tests/fsck-tests/004-no-dir-index/.lowmem_repairable
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/fsck-tests/004-no-dir-index/.lowmem_repairable
diff --git a/tests/fsck-tests/009-no-dir-item-or-index/.lowmem_repairable b/tests/fsck-tests/009-no-dir-item-or-index/.lowmem_repairable
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/fsck-tests/009-no-dir-item-or-index/.lowmem_repairable
diff --git a/tests/fsck-tests/010-no-rootdir-inode-item/.lowmem_repairable b/tests/fsck-tests/010-no-rootdir-inode-item/.lowmem_repairable
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/fsck-tests/010-no-rootdir-inode-item/.lowmem_repairable
diff --git a/tests/fsck-tests/011-no-inode-item/.lowmem_repairable b/tests/fsck-tests/011-no-inode-item/.lowmem_repairable
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/fsck-tests/011-no-inode-item/.lowmem_repairable
diff --git a/tests/fsck-tests/013-extent-tree-rebuild/test.sh b/tests/fsck-tests/013-extent-tree-rebuild/test.sh
index 90fe2e83..d71c1b2e 100755
--- a/tests/fsck-tests/013-extent-tree-rebuild/test.sh
+++ b/tests/fsck-tests/013-extent-tree-rebuild/test.sh
@@ -7,7 +7,7 @@ check_prereq mkfs.btrfs
check_prereq btrfs
setup_root_helper
-prepare_test_dev 1G
+prepare_test_dev
# test whether fsck can rebuild a corrupted extent tree
test_extent_tree_rebuild()
diff --git a/tests/fsck-tests/016-wrong-inode-nbytes/.lowmem_repairable b/tests/fsck-tests/016-wrong-inode-nbytes/.lowmem_repairable
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/fsck-tests/016-wrong-inode-nbytes/.lowmem_repairable
diff --git a/tests/fsck-tests/017-missing-all-file-extent/.lowmem_repairable b/tests/fsck-tests/017-missing-all-file-extent/.lowmem_repairable
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/fsck-tests/017-missing-all-file-extent/.lowmem_repairable
diff --git a/tests/fsck-tests/020-extent-ref-cases/inline_regular_coexist.img b/tests/fsck-tests/020-extent-ref-cases/inline_regular_coexist.img
new file mode 100644
index 00000000..cf15cc14
--- /dev/null
+++ b/tests/fsck-tests/020-extent-ref-cases/inline_regular_coexist.img
Binary files differ
diff --git a/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_only.img b/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_only.img
new file mode 100644
index 00000000..668589f4
--- /dev/null
+++ b/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_only.img
Binary files differ
diff --git a/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_with_shared_leaf.img b/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_with_shared_leaf.img
new file mode 100644
index 00000000..2ce5068f
--- /dev/null
+++ b/tests/fsck-tests/020-extent-ref-cases/keyed_data_ref_with_shared_leaf.img
Binary files differ
diff --git a/tests/fsck-tests/020-extent-ref-cases/ref_count_mismatch_false_alert.img b/tests/fsck-tests/020-extent-ref-cases/ref_count_mismatch_false_alert.img
new file mode 100644
index 00000000..85110a81
--- /dev/null
+++ b/tests/fsck-tests/020-extent-ref-cases/ref_count_mismatch_false_alert.img
Binary files differ
diff --git a/tests/fsck-tests/020-extent-ref-cases/shared_block_ref_only.raw.xz b/tests/fsck-tests/020-extent-ref-cases/shared_block_ref_only.raw.xz
new file mode 100644
index 00000000..538fb4f2
--- /dev/null
+++ b/tests/fsck-tests/020-extent-ref-cases/shared_block_ref_only.raw.xz
Binary files differ
diff --git a/tests/fsck-tests/020-extent-ref-cases/test.sh b/tests/fsck-tests/020-extent-ref-cases/test.sh
index 1e1e4e23..0c4f7848 100755
--- a/tests/fsck-tests/020-extent-ref-cases/test.sh
+++ b/tests/fsck-tests/020-extent-ref-cases/test.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# In order to confirm that btrfsck supports to check a variety of refs, add the
-# following cases:
+# In order to confirm that 'btrfs check' supports checking a variety of refs,
+# add the following cases:
#
# * keyed_block_ref
# * keyed_data_ref
@@ -19,12 +19,11 @@ source "$TOP/tests/common"
check_prereq btrfs
-for img in *.img *.raw.xz
-do
- image=$(extract_image "$img")
+check_image() {
+ local image
- # Since the return value bug is already fixed, we don't need
- # the old grep hack to detect bug.
+ image=$1
run_check "$TOP/btrfs" check "$image"
- rm -f "$image"
-done
+}
+
+check_all_images
diff --git a/tests/fsck-tests/021-partially-dropped-snapshot-case/test.sh b/tests/fsck-tests/021-partially-dropped-snapshot-case/test.sh
index 44a33a63..5d997e24 100755
--- a/tests/fsck-tests/021-partially-dropped-snapshot-case/test.sh
+++ b/tests/fsck-tests/021-partially-dropped-snapshot-case/test.sh
@@ -1,18 +1,22 @@
#!/bin/bash
-# confirm whether btrfsck supports to check a partially dropped snapshot
+# confirm whether 'btrfs check' supports check ing of a partially dropped
+# snapshot
source "$TOP/tests/common"
check_prereq btrfs
-for img in *.img
-do
- image=$(extract_image "$img")
+check_image()
+{
+ local image
+
+ image=$1
run_check_stdout "$TOP/btrfs" check "$image" 2>&1 |
grep -q "Errors found in extent allocation tree or chunk allocation"
if [ $? -eq 0 ]; then
rm -f "$image"
_fail "unexpected error occurred when checking $img"
fi
- rm -f "$image"
-done
+}
+
+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
index 6cf8440b..76ebcb6b 100755
--- a/tests/fsck-tests/024-clear-space-cache/test.sh
+++ b/tests/fsck-tests/024-clear-space-cache/test.sh
@@ -7,7 +7,7 @@ check_prereq btrfs
check_prereq mkfs.btrfs
setup_root_helper
-prepare_test_dev 1G
+prepare_test_dev
run_check $SUDO_HELPER "$TOP/mkfs.btrfs" -f "$TEST_DEV"
run_check_mount_test_dev
diff --git a/tests/fsck-tests/027-bad-extent-inline-ref-type/bad-extent-inline-ref-type.raw.xz b/tests/fsck-tests/027-bad-extent-inline-ref-type/bad-extent-inline-ref-type.raw.xz
new file mode 100644
index 00000000..09d82019
--- /dev/null
+++ b/tests/fsck-tests/027-bad-extent-inline-ref-type/bad-extent-inline-ref-type.raw.xz
Binary files differ
diff --git a/tests/fsck-tests/027-tree-reloc-tree/test.sh b/tests/fsck-tests/027-tree-reloc-tree/test.sh
new file mode 100755
index 00000000..afad1e8d
--- /dev/null
+++ b/tests/fsck-tests/027-tree-reloc-tree/test.sh
@@ -0,0 +1,19 @@
+#!/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 "$TOP/tests/common"
+
+check_prereq btrfs
+
+check_image() {
+ local image
+
+ image=$1
+ run_check "$TOP/btrfs" check "$image"
+}
+
+check_all_images
diff --git a/tests/fsck-tests/027-tree-reloc-tree/tree_reloc_for_data_reloc.img.xz b/tests/fsck-tests/027-tree-reloc-tree/tree_reloc_for_data_reloc.img.xz
new file mode 100644
index 00000000..66d8bde6
--- /dev/null
+++ b/tests/fsck-tests/027-tree-reloc-tree/tree_reloc_for_data_reloc.img.xz
Binary files differ
diff --git a/tests/fsck-tests/027-tree-reloc-tree/tree_reloc_for_fs_tree.img.xz b/tests/fsck-tests/027-tree-reloc-tree/tree_reloc_for_fs_tree.img.xz
new file mode 100644
index 00000000..22af324b
--- /dev/null
+++ b/tests/fsck-tests/027-tree-reloc-tree/tree_reloc_for_fs_tree.img.xz
Binary files differ
diff --git a/tests/fsck-tests/028-unaligned-super-dev-sizes/dev_and_super_mismatch_unaligned.raw.xz b/tests/fsck-tests/028-unaligned-super-dev-sizes/dev_and_super_mismatch_unaligned.raw.xz
new file mode 100644
index 00000000..153e514a
--- /dev/null
+++ b/tests/fsck-tests/028-unaligned-super-dev-sizes/dev_and_super_mismatch_unaligned.raw.xz
Binary files differ
diff --git a/tests/fsck-tests/028-unaligned-super-dev-sizes/test.sh b/tests/fsck-tests/028-unaligned-super-dev-sizes/test.sh
new file mode 100755
index 00000000..6f315fae
--- /dev/null
+++ b/tests/fsck-tests/028-unaligned-super-dev-sizes/test.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+#
+# An image with mis-aligned superblock total_bytes, that will be found and
+# fixed by 'check' or fixed by 'rescue fix-device-size'
+
+source "$TOP/tests/common"
+
+check_prereq btrfs
+prepare_test_dev
+setup_root_helper
+
+check_all_images
+
+image=$(extract_image "./dev_and_super_mismatch_unaligned.raw.xz")
+
+# detect and fix
+run_check "$TOP/btrfs" rescue fix-device-size "$image"
+# no problem found
+run_check "$TOP/btrfs" rescue fix-device-size "$image"
+# check if fix-device-size worked
+run_check "$TOP/btrfs" check "$image"
+# mount test
+run_check_mount_test_dev
+run_check_umount_test_dev
+
+rm -f "$image"