diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-01-20 16:17:32 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-01-20 16:18:05 -0500 |
commit | 168c4e9bc611bd8ef45e72005c3a1bcf2bda0963 (patch) | |
tree | 123aa48cbe824384fdfbdae81a285cf43498d354 /tools/run-readtest.sh | |
parent | 304b05ffd9d2280f729c7f0f4861a3c513e11aa8 (diff) |
add script for running readtest
Diffstat (limited to 'tools/run-readtest.sh')
-rwxr-xr-x | tools/run-readtest.sh | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/tools/run-readtest.sh b/tools/run-readtest.sh new file mode 100755 index 0000000000..952804c72c --- /dev/null +++ b/tools/run-readtest.sh @@ -0,0 +1,80 @@ +#!/bin/sh + +dir=/tmp +filesize=100 # megabytes +numfiles=128 +nocache= +interleave= +blocksize=262144 +needfiles=1 + + +while [ $# -gt 1 ] ; do + case $1 in + -d) dir=$2; shift; shift ;; + -f) filesize=$2; shift; shift ;; + -n) numfiles=$2; shift; shift ;; + -N) nocache="-s"; shift; shift ;; + -b) blocksize=$2; shift; shift ;; + esac +done + +if [ -d $dir -a -f $dir/testfile_1 ] ; then + # dir exists and has a testfile within it - reuse to avoid + # recreating files + echo "Re-using files in $dir" + needfiles= +else + dir=$dir/readtest_$$ + mkdir $dir + + if [ $? != 0 ] ; then + echo "Cannot create testfile directory $dir" + exit 1 + fi +fi + +if [ x$needfiles != x ] ; then + if [ x$interleave = x ] ; then + + # + # Create all files sequentially + # + + for i in `seq 1 $numfiles` ; do + dd of=$dir/testfile_$i if=/dev/zero bs=1M count=$filesize + echo $i + done + else + + # + # Create files interleaved, adding $blocksize to each + # file in turn. + # + + size=0 + limit=`expr $filesize * 1048576` + while [ $size -lt $limit ] ; do + for i in `seq 1 $numfiles` ; do + dd if=/dev/zero bs=$blocksize count=1 >> $dir/testfile_$i + done + size=`expr $size + $blocksize` + echo "Files now @ $size bytes" + done + fi +fi + +if uname -a | grep -s arwin ; then + # clears cache on OS X + sudo purge +elif [ -f /proc/sys/vm/drop_cache ] ; then + # Linux cache clearing + echo 3 | sudo tee /proc/sys/vm/drop/cache >/dev/null +else + # need an alternative for other operating systems + : +fi + +echo "Ready to run ..." + +./readtest $nocache -b $blocksize -q $dir/testfile_%d |