Whamcloud - gitweb
LU-0000 tests: fix resize test tmpfs max-file-size checking 46/9746/4
authorAndreas Dilger <andreas.dilger@intel.com>
Fri, 21 Mar 2014 07:05:51 +0000 (01:05 -0600)
committerAndreas Dilger <andreas.dilger@intel.com>
Fri, 21 Mar 2014 09:54:43 +0000 (03:54 -0600)
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>
Change-Id: I575ebe1c902e34876a6f507a1a28eb30f4500c1e

tests/r_1024_small_bg/script
tests/r_64bit_big_expand/script
tests/r_bigalloc_big_expand/script
tests/r_ext4_big_expand/script
tests/r_ext4_small_bg/script
tests/scripts/resize_test

index fafcf91..f86537e 100644 (file)
@@ -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
 
index 51f36e9..2a8fef0 100644 (file)
@@ -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
 
index 56c8c15..2f28c67 100644 (file)
@@ -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
 
index a4f8fe6..3b969d2 100644 (file)
@@ -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
 
index 553cbd8..dafb008 100644 (file)
@@ -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
 
index 6a8b0e9..b09731c 100755 (executable)
@@ -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)