From: Andreas Dilger Date: Mon, 14 Apr 2014 16:48:16 +0000 (-0400) Subject: tests: fix resize test tmpfs max-file-size checking X-Git-Tag: v1.42.10~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5bb66e37d668697092b467460e0ea151fefdd744;p=thirdparty%2Fe2fsprogs.git tests: fix resize test tmpfs max-file-size checking Old distros may not have the "truncate" tool, so use "dd" instead. If tmpfs cannot handle a 2GB temp file (e.g. old RHEL5 and SLES 11 kernels) then skip the test instead of failing it. If this fails, try to report better error messages instead of failing silently. Signed-off-by: Andreas Dilger Signed-off-by: "Theodore Ts'o" --- diff --git a/tests/r_1024_small_bg/script b/tests/r_1024_small_bg/script index fafcf914c..2038cb96d 100644 --- a/tests/r_1024_small_bg/script +++ b/tests/r_1024_small_bg/script @@ -10,13 +10,17 @@ E2FSCK=../e2fsck/e2fsck . $cmd_dir/scripts/resize_test -if resize_test -then +resize_test +RC=$? +if [ $RC -eq 0 ]; then echo "$test_name: $test_description: ok" touch $test_name.ok +elif [ $RC -eq 111 ]; then + echo "$test_name: $test_description: skipped" + touch $test_name.ok else echo "$test_name: $test_description: failed" - touch $test_name.failed + ln $LOG $test_name.failed fi unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK diff --git a/tests/r_64bit_big_expand/script b/tests/r_64bit_big_expand/script index 51f36e987..6716f3c65 100644 --- a/tests/r_64bit_big_expand/script +++ b/tests/r_64bit_big_expand/script @@ -20,7 +20,7 @@ elif [ $RC -eq 111 ]; then touch $test_name.ok else echo "$test_name: $test_description: failed" - touch $test_name.failed + ln $LOG $test_name.failed fi unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK diff --git a/tests/r_bigalloc_big_expand/script b/tests/r_bigalloc_big_expand/script index 56c8c15d1..511733b6a 100644 --- a/tests/r_bigalloc_big_expand/script +++ b/tests/r_bigalloc_big_expand/script @@ -20,7 +20,7 @@ elif [ $RC -eq 111 ]; then touch $test_name.ok else echo "$test_name: $test_description: failed" - touch $test_name.failed + ln $LOG $test_name.failed fi unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK diff --git a/tests/r_ext4_big_expand/script b/tests/r_ext4_big_expand/script index a4f8fe634..b4a6f6e32 100644 --- a/tests/r_ext4_big_expand/script +++ b/tests/r_ext4_big_expand/script @@ -20,7 +20,7 @@ elif [ $RC -eq 111 ]; then touch $test_name.ok else echo "$test_name: $test_description: failed" - touch $test_name.failed + ln $LOG $test_name.failed fi unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK diff --git a/tests/r_ext4_small_bg/script b/tests/r_ext4_small_bg/script index 553cbd8a8..cdc6e4a3e 100644 --- a/tests/r_ext4_small_bg/script +++ b/tests/r_ext4_small_bg/script @@ -10,13 +10,17 @@ E2FSCK=../e2fsck/e2fsck . $cmd_dir/scripts/resize_test -if resize_test -then +resize_test +RC=$? +if [ $RC -eq 0 ]; then echo "$test_name: $test_description: ok" touch $test_name.ok +elif [ $RC -eq 111 ]; then + echo "$test_name: $test_description: skipped" + touch $test_name.ok else echo "$test_name: $test_description: failed" - touch $test_name.failed + ln $LOG $test_name.failed fi unset FEATURES SIZE_1 SIZE_2 LOG E2FSCK diff --git a/tests/scripts/resize_test b/tests/scripts/resize_test index 6a8b0e970..b09731c19 100755 --- a/tests/scripts/resize_test +++ b/tests/scripts/resize_test @@ -1,25 +1,36 @@ #!/bin/sh +# old distros are missing "truncate", emulate it with "dd" +truncate() +{ + [ "$1" = "-s" ] && size=$2 && shift 2 + + dd if=/dev/zero of=$1 bs=1 count=0 seek=$size >> $LOG 2>&1 +} + resize_test () { +echo $test_description starting > $LOG rm -f $TMPFILE touch $TMPFILE # Verify that the $TMP filesystem handles $SIZE_2 sparse files. # If that fails, try the local filesystem instead. if truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then - > $TMPFILE + echo "using $TMPFILE" >> $LOG else rm $TMPFILE export TMPFILE=$(TMPDIR=. mktemp -t $test_name.XXXXXX.tmp) touch $TMPFILE - if ! truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then + echo "using $TMPFILE" >> $LOG + if ! truncate -s $SIZE_2 $TMPFILE >> $LOG 2>&1; then rm $TMPFILE return 111 fi fi +> $TMPFILE -echo $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 > $LOG +echo $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG $MKE2FS $FEATURES -qF $TMPFILE $SIZE_1 >> $LOG OUT_TMP=$(mktemp -t csum-tmp.XXXXXX)