diff options
authorQu Wenruo <>2018-04-30 14:17:00 +0800
committerDavid Sterba <>2018-06-07 16:37:33 +0200
commit7e0ae73fb4dcbb8b3b76a47e708661ef9c4aea73 (patch)
parent4bd7bbb6f6859583da1a81406cb3c02d613c9b2c (diff)
btrfs-progs: tests: Add test case to ensure btrfs check returns error for corrupted qgroups
Since the test case uses run_mustfail(), which is pretty easy pass due to other unexpected problems, so here an extra run_check() is added to ensure we don't only report qgroup error, but also fix it without problem. Signed-off-by: Qu Wenruo <> Signed-off-by: David Sterba <>
-rw-r--r--tests/fsck-tests/032-corrupted-qgroup/qgroup_corrupted.imgbin0 -> 3072 bytes
2 files changed, 19 insertions, 0 deletions
diff --git a/tests/fsck-tests/032-corrupted-qgroup/qgroup_corrupted.img b/tests/fsck-tests/032-corrupted-qgroup/qgroup_corrupted.img
new file mode 100644
index 00000000..a19a3035
--- /dev/null
+++ b/tests/fsck-tests/032-corrupted-qgroup/qgroup_corrupted.img
Binary files differ
diff --git a/tests/fsck-tests/032-corrupted-qgroup/ b/tests/fsck-tests/032-corrupted-qgroup/
new file mode 100755
index 00000000..4bfa3601
--- /dev/null
+++ b/tests/fsck-tests/032-corrupted-qgroup/
@@ -0,0 +1,19 @@
+# Check if btrfs check can handle valid orphan items.
+# Orphan item is a marker for deleted inodes that were open at the time of
+# deletion. Orphan inode/root is not referenced and will have an orphan
+# item, which should not be reported as error.
+source "$TEST_TOP/common"
+check_prereq btrfs
+check_image() {
+ run_mustfail "btrfs check failed to detect qgroup corruption" \
+ "$TOP/btrfs" check "$1"
+ # Above command can fail due to other bugs, so add extra check to
+ # ensure we can fix qgroup without problems.
+ run_check "$TOP/btrfs" check --repair "$1"