diff options
| -rw-r--r-- | tests/include.rc | 112 | 
1 files changed, 112 insertions, 0 deletions
diff --git a/tests/include.rc b/tests/include.rc index 0638a22c7bd..8919d0a663c 100644 --- a/tests/include.rc +++ b/tests/include.rc @@ -334,6 +334,118 @@ function process_leak_count ()      return $(ls -lh /proc/$pid/fd | grep "(deleted)"| wc -l)  } +which truncate > /dev/null || { +  truncate() { +    local nocreate=0 +    local ioblocks=0 +    local fileref="" +    local newsize="" + +    args=`getopt xor:s: $*` +    if [ $? -ne 0 ]; then +      echo 'Usage: truncate [-co](-r file | -s size) file ...' +      exit 2 +    fi +    set -- $args +    while [ $# -gt 0 ]; do +      case "$1" in +      -c) +        nocreate=1; +        ;; +      -o) +        ioblocks=1; +	echo "Unimplemented -o option" +        exit 2 +        ;; +      -r) +        fileref=$2; +        shift; +        ;; +      -s) +        newsize=$2; +        shift; +        ;; +      --) +        shift; +        break; +        ;; +      *) +        echo 'Usage: truncate [-co](-r file | -s size) file ...' +        exit 2; +        ;; +      esac +      shift +    done + +    if [ "x$newsize" = "x" -a "x$fileref" = "x" ] ; then +      echo 'Usage: truncate [-co](-r file | -s size) file ...' +      exit 2; +    fi + +    if [ "x$newsize" != "x" -a "x$fileref" != "x" ] ; then +      echo 'Usage: truncate [-co](-r file | -s size) file ...' +      exit 2; +    fi + +    if [ "x$newsize" != "x" ] ; then +      echo $newsize | grep -q '^[-_<>%/]' && { +        echo "Unimplemented prefix in ${newsize}" +        exit 2; +      } + +      echo $newsize | egrep -q '[GTPEZY]B?$' && { +        echo "Unit not implemented for ${newsize}" +        exit 2; +      } + +      case $newsize in +      *KB) +        newsize=$(( ${newsize/KB/} * 1000 )) +        ;; +      *K) +        newsize=$(( ${newsize/K/} * 1024 )) +        ;; +      *MB) +        newsize=$(( ${newsize/MB/} * 1000 * 1000 )) +        ;; +      *M) +        newsize=$(( ${newsize/M/} * 1024 * 1024 )) +        ;; +      esac + +    fi + +    if [ "x$fileref" != "x" ] ; then +       if [ ! -f $fileref ] ; then +         echo "File does not exists: ${fileref}" +         exit 2; +       fi +       newsize=`ls -l ${fileref}|awk '{print $5}'` +    fi + +    if [ $# -eq 0 ]; then +      echo 'Usage: truncate [-co](-r file | -s size) file ...' +      exit 2; +    fi + +    for f in $* ; do +      if [ "x$nocreate" = "x1" -a ! -f $f ] ; then +        continue; +      fi + +      dd bs=1 seek=$newsize if=/dev/null of=$f +    done +  } +} + +which md5sum > /dev/null || { +  md5sum() { +    for f in $* ; do +      md5 $f | awk -F'[() ]' '{printf("%s  %s\n", $6, $3)}' +    done +  } +} +  alias EXPECT='_EXPECT $LINENO'  alias EXPECT_NOT='_EXPECT_NOT $LINENO'  alias TEST='_TEST $LINENO'  | 
