#!/bin/sh
-# old distros are missing "truncate", emulate it with "dd"
-truncate()
+# old distros are missing "truncate", emulate it with "dd" if necessary
+do_truncate()
{
[ "$1" = "-s" ] && size=$2 && shift 2
- dd if=/dev/zero of=$1 bs=1 count=0 seek=$size >> $LOG 2>&1
+ if ! truncate -s $size $1 >> $LOG 2>&1 ; then
+ dd if=/dev/zero of=$1 bs=1 count=0 seek=$size >> $LOG 2>&1
+ fi
}
resize_test () {
# 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
+if do_truncate -s $SIZE_2 $TMPFILE 2> /dev/null; then
echo "using $TMPFILE" >> $LOG
else
rm $TMPFILE
export TMPFILE=$(mktemp ./$test_name.tmp.XXXXXX)
touch $TMPFILE
echo "using $TMPFILE" >> $LOG
- if ! truncate -s $SIZE_2 $TMPFILE >> $LOG 2>&1; then
+ if ! do_truncate -s $SIZE_2 $TMPFILE >> $LOG 2>&1; then
rm $TMPFILE
return 111
fi