btrfs-progs: Document logic of btrfs_read_dev_super
[platform/upstream/btrfs-progs.git] / tests / fsck-tests.sh
index fb86163..15d26c7 100755 (executable)
@@ -1,51 +1,52 @@
 #!/bin/bash
 #
 # loop through all of our bad images and make sure fsck repairs them properly
-#
-# It's GPL, same as everything else in this tree.
-#
 
-unset TOP
-unset LANG
 LANG=C
-SCRIPT_DIR=$(dirname $(readlink -f $0))
-TOP=$(readlink -f $SCRIPT_DIR/../)
+SCRIPT_DIR=$(dirname $(readlink -f "$0"))
+TOP=$(readlink -f "$SCRIPT_DIR/../")
 TEST_DEV=${TEST_DEV:-}
 RESULTS="$TOP/tests/fsck-tests-results.txt"
+IMAGE="$TOP/tests/test.img"
 
-source $TOP/tests/common
+source "$TOP/tests/common"
 
-# Allow child test to use $TOP and $RESULTS
 export TOP
 export RESULTS
-# For custom script needs to verify recovery
 export LANG
+export IMAGE
+export TEST_DEV
 
-rm -f $RESULTS
+rm -f "$RESULTS"
 
 # test rely on corrupting blocks tool
 check_prereq btrfs-corrupt-block
 check_prereq btrfs-image
 check_prereq btrfs
+check_prereq btrfstune
+check_kernel_support
 
 run_one_test() {
        local testname
 
        testname="$1"
        echo "    [TEST/fsck]   $(basename $testname)"
-       cd $testname
-       echo "=== Entering $testname" >> $RESULTS
+       cd "$testname"
+       echo "=== Entering $testname" >> "$RESULTS"
        if [ -x test.sh ]; then
                # Type 2
                ./test.sh
                if [ $? -ne 0 ]; then
+                       if [[ $TEST_LOG =~ dump ]]; then
+                               cat "$RESULTS"
+                       fi
                        _fail "test failed for case $(basename $testname)"
                fi
        else
                # Type 1
-               check_all_images `pwd`
+               check_all_images
        fi
-       cd $TOP
+       cd "$TOP"
 }
 
 # Each dir contains one type of error for btrfsck test.
@@ -61,7 +62,7 @@ run_one_test() {
 #    This is for case btrfs-image can't dump or case needs extra
 #    check/verify
 
-for i in $(find $TOP/tests/fsck-tests -maxdepth 1 -mindepth 1 -type d  \
+for i in $(find "$TOP/tests/fsck-tests" -maxdepth 1 -mindepth 1 -type d        \
        ${TEST:+-name "$TEST"} | sort)
 do
        run_one_test "$i"