|author||Qu Wenruo <firstname.lastname@example.org>||2018-04-30 14:17:00 +0800|
|committer||David Sterba <email@example.com>||2018-06-07 16:37:33 +0200|
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 <firstname.lastname@example.org> Signed-off-by: David Sterba <email@example.com>
|-rw-r--r--||tests/fsck-tests/032-corrupted-qgroup/qgroup_corrupted.img||bin||0 -> 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.imgBinary files differ
new file mode 100644
diff --git a/tests/fsck-tests/032-corrupted-qgroup/test.sh b/tests/fsck-tests/032-corrupted-qgroup/test.sh
new file mode 100755
@@ -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.
+ 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"