tests: fix resize test tmpfs max-file-size checking
PATCH 1/1 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 <[email protected]>
--- tests/r_1024_small_bg/script | 9 +++++++-- tests/r_64bit_big_expand/script | 1 + tests/r_bigalloc_big_expand/script | 1 + tests/r_ext4_big_expand/script | 1 + tests/r_ext4_small_bg/script | 9 +++++++-- tests/scripts/resize_test | 17 ++++++++++++++--- 6 files changed, 31 insertions(+), 7 deletions(-)
tests/r_1024_small_bg/script +7 -2
@@ -10,12 +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" + ln $LOG $test_name.failed touch $test_name.failed fi
tests/r_64bit_big_expand/script +1 -0
@@ -20,6 +20,7 @@ elif [ $RC -eq 111 ]; then touch $test_name.ok else echo "$test_name: $test_description: failed" + ln $LOG $test_name.failed touch $test_name.failed fi
tests/r_bigalloc_big_expand/script +1 -0
@@ -20,6 +20,7 @@ elif [ $RC -eq 111 ]; then touch $test_name.ok else echo "$test_name: $test_description: failed" + ln $LOG $test_name.failed touch $test_name.failed fi
tests/r_ext4_big_expand/script +1 -0
@@ -20,6 +20,7 @@ elif [ $RC -eq 111 ]; then touch $test_name.ok else echo "$test_name: $test_description: failed" + ln $LOG $test_name.failed touch $test_name.failed fi
tests/r_ext4_small_bg/script +7 -2
@@ -10,12 +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" + ln $LOG $test_name.failed touch $test_name.failed fi
tests/scripts/resize_test +14 -3
@@ -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)
Signature · 1 line
1.7.3.4