X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Ffsck-tests.sh;h=f97ae98661094d61225696a3fdceaef3cf36dd08;hb=cebf3b37228cbde730a5448ad2dfb044600d5e03;hp=fff1b4212ae0d5ff231ea4d0a472751c4b737d8b;hpb=7c6801606e11a4664c0a2a195a1422cb86fe7dad;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/tests/fsck-tests.sh b/tests/fsck-tests.sh index fff1b42..f97ae98 100755 --- a/tests/fsck-tests.sh +++ b/tests/fsck-tests.sh @@ -1,35 +1,60 @@ #!/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")) +INTERNAL_BIN=$(readlink -f "$SCRIPT_DIR/../") +TEST_TOP=$(readlink -f "$SCRIPT_DIR/../tests/") +TOP=$(readlink -f "$SCRIPT_DIR/../") +if ! [ -f "$TOP/btrfs" ];then + TOP=$(dirname `which btrfs`) +fi TEST_DEV=${TEST_DEV:-} -TEST_MNT=${TEST_MNT:-$TOP/tests/mnt} -RESULTS="$TOP/tests/fsck-tests-results.txt" +RESULTS="$TEST_TOP/fsck-tests-results.txt" +IMAGE="$TEST_TOP/test.img" -source $TOP/tests/common +source "$TEST_TOP/common" -# Allow child test to use $TOP and $RESULTS +export INTERNAL_BIN +export TEST_TOP 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 "$TEST_TOP" +} # Each dir contains one type of error for btrfsck test. # Each dir must be one of the following 2 types: @@ -44,20 +69,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 "$TEST_TOP/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