Test script to recover damaged primary superblock using backup superblock.

Signed-off-by: Lakshmipathi.G <lakshmipath...@giis.co.in>
---
 .../019-fix-superblock-corruption/test.sh          | 36 ++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100755 tests/misc-tests/019-fix-superblock-corruption/test.sh

diff --git a/tests/misc-tests/019-fix-superblock-corruption/test.sh 
b/tests/misc-tests/019-fix-superblock-corruption/test.sh
new file mode 100755
index 0000000..95815e4
--- /dev/null
+++ b/tests/misc-tests/019-fix-superblock-corruption/test.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Corrupt primary superblock and restore it using backup superblock.
+#
+
+source $TOP/tests/common
+
+check_prereq btrfs-select-super
+check_prereq btrfs
+
+setup_root_helper
+prepare_test_dev 512M
+
+FIRST_SUPERBLOCK_OFFSET=65536
+
+test_superblock_restore()
+{
+       run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $TEST_DEV
+
+       # Corrupt superblock checksum
+        dd if=/dev/zero of=$TEST_DEV seek=$FIRST_SUPERBLOCK_OFFSET bs=1 \
+        count=4  conv=notrunc &> /dev/null
+       # Run btrfs check to detect corruption
+       $TOP/btrfs check $TEST_DEV >& /dev/null && \
+               _fail "btrfs check should detect corruption"
+       # Copy backup superblock to primary
+       run_check $TOP/btrfs-select-super -s 1 $TEST_DEV
+
+       echo "Performing btrfs check" &>> $RESULTS
+       $TOP/btrfs check $TEST_DEV &>> $RESULTS
+        if [ $? -ne 0 ]; then
+               _fail "Failed to fix superblock."
+        fi
+}
+
+test_superblock_restore
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to