module-prealloc.sh [plain text]
#! /bin/bash
SCRIPTBASE=${SCRIPTBASE:-$(cd $(dirname $0)/.. && pwd )}
. $SCRIPTBASE/common.sh || exit 2
TESTUSER=${TESTUSER:-local}
TESTPASSWD=${TESTPASSWD:-local}
CIFSDD=${CIFSDD:-/usr/local/bin/cifsdd}
DEBUGLEVEL=${DEBUGLEVEL:-1}
ASROOT=sudo
SHAREPATH=/tmp/$(basename $0)
SERVER=localhost
SHARE=PreallocTest
FILETYPE=mpeg
testfile=/tmp/$(basename $0)-$$.$FILETYPE
tmpfile=/tmp/$(basename $0)-$$.verify
failed=0
failtest()
{
echo "*** FAILED ***"
failed=`expr $failed + 1`
}
rm -rf $SHAREPATH
mkdir -p $SHAREPATH
chmod 777 $SHAREPATH
$ASROOT net usershare add $SHARE $SHAREPATH prealloc S-1-1-0:F guest_ok=y \
"read only = no" \
"vfs objects = prealloc" \
"prealloc:msglevel = 0" \
"prealloc:$FILETYPE = 10M"
cleanup()
{
echo Removing temporary test state
$ASROOT net usershare delete $SHARE
rm -f $tmpfile $testfile
rm -rf $SHAREPATH
}
if [ -z "$NOCLEANUP" ]; then
register_cleanup_handler cleanup
fi
copyfile()
{
$CIFSDD --debuglevel=$DEBUGLEVEL \
-U "$TESTUSER"%"$TESTPASSWD" \
"$@"
}
echo Creating an initial test file
dd if=/dev/random of=$testfile bs=4096 count=1 > /dev/null 2>&1
echo Writing a test file
copyfile of=//$SERVER/$SHARE/$(basename $testfile) \
if=$testfile > /dev/null 2>&1 || failtest
echo Reading it back
copyfile if=//$SERVER/$SHARE/$(basename $testfile) \
of=$tmpfile > /dev/null 2>&1 || failtest
echo Checking it is the same
files_are_the_same $testfile $tmpfile > /dev/null 2>&1|| failtest
testok $0 $failed