diff options
author | Andreas Dilger <andreas.dilger@intel.com> | 2014-04-14 12:48:16 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2014-04-14 13:51:24 -0400 |
commit | 5bb66e37d668697092b467460e0ea151fefdd744 (patch) | |
tree | b0b7d3f376a19ba5df9d769db89de8809bf7cdde | |
parent | d8f401b13568389ac0f67af0c653f153b5f0bd09 (diff) | |
download | e2fsprogs-5bb66e37d668697092b467460e0ea151fefdd744.tar.gz |
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 <andreas.dilger@intel.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r-- | tests/r_1024_small_bg/script | 10 | ||||
-rw-r--r-- | tests/r_64bit_big_expand/script | 2 | ||||
-rw-r--r-- | tests/r_bigalloc_big_expand/script | 2 | ||||
-rw-r--r-- | tests/r_ext4_big_expand/script | 2 | ||||
-rw-r--r-- | tests/r_ext4_small_bg/script | 10 | ||||
-rwxr-xr-x | tests/scripts/resize_test | 17 |
6 files changed, 31 insertions, 12 deletions
diff --git a/tests/r_1024_small_bg/script b/tests/r_1024_small_bg/script index fafcf914..2038cb96 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 51f36e98..6716f3c6 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 56c8c15d..511733b6 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 a4f8fe63..b4a6f6e3 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 553cbd8a..cdc6e4a3 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 6a8b0e97..b09731c1 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) |