X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Ffsck-tests.sh;h=15d26c70b1b87d06fcca14be88cf3b256ad6bea2;hb=90a16b10b328d63ea90b3f4a04fd52a0bc0b689f;hp=fff1b4212ae0d5ff231ea4d0a472751c4b737d8b;hpb=7c6801606e11a4664c0a2a195a1422cb86fe7dad;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/tests/fsck-tests.sh b/tests/fsck-tests.sh index fff1b42..15d26c7 100755 --- a/tests/fsck-tests.sh +++ b/tests/fsck-tests.sh @@ -1,35 +1,53 @@ #!/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 $(realpath $0)) -TOP=$(realpath $SCRIPT_DIR/../) +SCRIPT_DIR=$(dirname $(readlink -f "$0")) +TOP=$(readlink -f "$SCRIPT_DIR/../") TEST_DEV=${TEST_DEV:-} -TEST_MNT=${TEST_MNT:-$TOP/tests/mnt} 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 verfiy recovery -export TEST_MNT export LANG +export IMAGE +export TEST_DEV -rm -f $RESULTS -mkdir -p $TEST_MNT || _fail "unable to create mount point on $TEST_MNT" +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" + 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 + fi + cd "$TOP" +} # Each dir contains one type of error for btrfsck test. # Each dir must be one of the following 2 types: @@ -44,20 +62,8 @@ check_prereq btrfs # 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 | sort) +for i in $(find "$TOP/tests/fsck-tests" -maxdepth 1 -mindepth 1 -type d \ + ${TEST:+-name "$TEST"} | sort) do - echo " [TEST] $(basename $i)" - cd $i - echo "=== Entering $i" >> $RESULTS - if [ -x test.sh ]; then - # Type 2 - ./test.sh - if [ $? -ne 0 ]; then - _fail "test failed for case $(basename $i)" - fi - else - # Type 1 - check_all_images `pwd` - fi - cd $TOP + run_one_test "$i" done