X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Fmisc-tests.sh;h=94703a3ec200b5fe39910354363108566cef9fb3;hb=7a8d5d50145e6f3898bb382360857dcc080a4a78;hp=2ae99db908db7c1a308dd800591d6d044232a148;hpb=a57606e815f3e1c4fe66c61ce3c6e3621ea522e9;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/tests/misc-tests.sh b/tests/misc-tests.sh index 2ae99db..94703a3 100755 --- a/tests/misc-tests.sh +++ b/tests/misc-tests.sh @@ -2,48 +2,71 @@ # # Misc tests -unset TOP -unset LANG LANG=C -SCRIPT_DIR=$(dirname $(readlink -f $0)) -TOP=$(readlink -f $SCRIPT_DIR/../) +SCRIPT_DIR=$(dirname $(readlink -f "$0")) +if [ -z "$TOP" ]; then + TOP=$(readlink -f "$SCRIPT_DIR/../") + if [ -f "$TOP/configure.ac" ]; then + # inside git + TEST_TOP="$TOP/tests/" + INTERNAL_BIN="$TOP" + else + # external, defaults to system binaries + TOP=$(dirname `which btrfs`) + TEST_TOP="$SCRIPT_DIR" + INTERNAL_BIN="$TEST_TOP" + fi +else + # assume external, TOP set from commandline + TEST_TOP="$SCRIPT_DIR" + INTERNAL_BIN="$TEST_TOP" +fi +if ! [ -x "$TOP/btrfs" ]; then + echo "ERROR: cannot execute btrfs from TOP=$TOP" + exit 1 +fi TEST_DEV=${TEST_DEV:-} -TEST_MNT=${TEST_MNT:-$TOP/tests/mnt} -RESULTS="$TOP/tests/misc-tests-results.txt" -IMAGE="$TOP/tests/test.img" +RESULTS="$TEST_TOP/misc-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 -# For tests that only use a loop device 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 btrfstune check_prereq btrfs +check_prereq btrfs-zero-log +check_prereq btrfs-find-root +check_prereq btrfs-select-super +check_kernel_support # The tests are driven by their custom script called 'test.sh' -for i in $(find $TOP/tests/misc-tests -maxdepth 1 -mindepth 1 -type d | sort) +for i in $(find "$TEST_TOP/misc-tests" -maxdepth 1 -mindepth 1 -type d \ + ${TEST:+-name "$TEST"} | sort) do - echo " [TEST] $(basename $i)" - cd $i - echo "=== Entering $i" >> $RESULTS + echo " [TEST/misc] $(basename $i)" + cd "$i" + echo "=== Entering $i" >> "$RESULTS" if [ -x test.sh ]; then ./test.sh if [ $? -ne 0 ]; then + if [[ $TEST_LOG =~ dump ]]; then + cat "$RESULTS" + fi _fail "test failed for case $(basename $i)" fi fi - cd $TOP + cd "$TEST_TOP" done