X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Fconvert-tests.sh;h=52c59d4d1e9cf2825dde7ebd9b61884f08a3403e;hb=cebf3b37228cbde730a5448ad2dfb044600d5e03;hp=f6b919d2211b669ce6b35f2cbbe6502af7730cda;hpb=d738c3d292135342c094c32d0ec03eed23842213;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/tests/convert-tests.sh b/tests/convert-tests.sh old mode 100644 new mode 100755 index f6b919d..52c59d4 --- a/tests/convert-tests.sh +++ b/tests/convert-tests.sh @@ -2,50 +2,65 @@ # # convert ext2/3/4 images to btrfs images, and make sure the results are # clean. -# -here=`pwd` +LANG=C +SCRIPT_DIR=$(dirname $(readlink -f "$0")) +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:-} +RESULTS="$TEST_TOP/convert-tests-results.txt" +IMAGE="$TEST_TOP/test.img" -_fail() -{ - echo "$*" | tee -a convert-tests-results.txt - exit 1 -} +source "$TEST_TOP/common" +source "$TEST_TOP/common.convert" + +export TEST_TOP +export TOP +export RESULTS +export LANG +export IMAGE +export TEST_DEV + +rm -f "$RESULTS" + +check_kernel_support +check_kernel_support_reiserfs +# anything expected by common.convert +check_global_prereq getfacl +check_global_prereq setfacl +check_global_prereq md5sum + +run_one_test() { + local testdir + local testname -rm -f convert-tests-results.txt - -test(){ - echo " [TEST] $1" - nodesize=$2 - shift 2 - echo "creating ext image with: $*" >> convert-tests-results.txt - # 256MB is the smallest acceptable btrfs image. - rm -f $here/test.img >> convert-tests-results.txt 2>&1 \ - || _fail "could not remove test image file" - truncate -s 256M $here/test.img >> convert-tests-results.txt 2>&1 \ - || _fail "could not create test image file" - $* -F $here/test.img >> convert-tests-results.txt 2>&1 \ - || _fail "filesystem create failed" - $here/btrfs-convert -N "$nodesize" $here/test.img \ - >> convert-tests-results.txt 2>&1 \ - || _fail "btrfs-convert failed" - $here/btrfs check $here/test.img >> convert-tests-results.txt 2>&1 \ - || _fail "btrfs check detected errors" + testdir="$1" + testname=$(basename "$testdir") + echo " [TEST/conv] $testname" + cd "$testdir" + echo "=== Entering $testname" >> "$RESULTS" + if [ -x test.sh ]; then + # Only support custom test scripts + ./test.sh + if [ $? -ne 0 ]; then + if [[ $TEST_LOG =~ dump ]]; then + # the logs can be large and may exceed the + # limits, use 4MB for now + tail -c 3900000 "$RESULTS" + fi + _fail "test failed for case $testname" + fi + else + _fail "custom test script not found" + fi } -# btrfs-convert requires 4k blocksize. -test "ext2 4k nodesize" 4096 mke2fs -b 4096 -test "ext3 4k nodesize" 4096 mke2fs -j -b 4096 -test "ext4 4k nodesize" 4096 mke2fs -t ext4 -b 4096 -test "ext2 8k nodesize" 8192 mke2fs -b 4096 -test "ext3 8k nodesize" 8192 mke2fs -j -b 4096 -test "ext4 8k nodesize" 8192 mke2fs -t ext4 -b 4096 -test "ext2 16k nodesize" 16384 mke2fs -b 4096 -test "ext3 16k nodesize" 16384 mke2fs -j -b 4096 -test "ext4 16k nodesize" 16384 mke2fs -t ext4 -b 4096 -test "ext2 32k nodesize" 32768 mke2fs -b 4096 -test "ext3 32k nodesize" 32768 mke2fs -j -b 4096 -test "ext4 32k nodesize" 32768 mke2fs -t ext4 -b 4096 -test "ext2 64k nodesize" 65536 mke2fs -b 4096 -test "ext3 64k nodesize" 65536 mke2fs -j -b 4096 -test "ext4 64k nodesize" 65536 mke2fs -t ext4 -b 4096 +# Test special images +for i in $(find "$TEST_TOP/convert-tests" -maxdepth 1 -mindepth 1 -type d \ + ${TEST:+-name "$TEST"} | sort) +do + run_one_test "$i" +done