Commit 0d9c304f authored by Rich Prohaska's avatar Rich Prohaska Committed by Yoni Fogel

#4389 update the loader stress test refs[t:4389]

git-svn-id: file:///svn/toku/tokudb@38782 c7de825b-a66e-492c-adef-691d508d4ae1
parent f1e618f5
#!/usr/bin/env bash
function usage() {
echo "run the loader verify test"
echo "[--rows=$rows]"
echo "[--dictionaries=$dictionaries]"
echo "[--brtloader=$brtloader]"
echo "[--tokudb=$tokudb]"
echo "[--branch=$branch]"
echo "[--revision=$revision]"
echo "[--suffix=$suffix]"
echo "[--commit=$commit]"
}
function retry() {
local cmd
local retries
local exitcode
cmd=$*
let retries=0
while [ $retries -le 10 ] ; do
echo `date` $cmd
bash -c "$cmd"
exitcode=$?
echo `date` $cmd $exitcode $retries
let retries=retries+1
if [ $exitcode -eq 0 ] ; then break; fi
sleep 10
done
test $exitcode = 0
}
rows=100000000
dictionaries=3
brtloader=cilk
tokudb=tokudb
branch=.
revision=0
suffix=.
commit=0
svnserver=https://svn.tokutek.com/tokudb
basedir=~/svn.build
builddir=$basedir/mysql.build
system=`uname -s | tr [:upper:] [:lower:]`
arch=`uname -m | tr [:upper:] [:lower:]`
myhost=`hostname`
instancetype=""
ftcc=gcc
have_cilk=0
# parse the command line
while [ $# -gt 0 ] ; do
arg=$1; shift
if [[ $arg =~ --(.*)=(.*) ]] ; then
eval ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}
else
usage; exit 1
fi
done
# require a revision
if [ $revision -eq 0 ] ; then
exit 1
fi
# setup the branchrevision string
if [ $branch = "." ] ; then
branchrevision=$revision
else
branchrevision=`basename $branch`-$revision
fi
if [ $suffix != "." ] ; then
branchrevision=$branchrevision-$suffix
fi
ftccversion=$($ftcc --version|head -1|cut -f3 -d" ")
# goto the base directory
if [ ! -d $basedir ] ; then mkdir $basedir; fi
pushd $basedir
# update the build directory
if [ ! -d $builddir ] ; then mkdir $builddir; fi
date=`date +%Y%m%d`
testresultsdir=$builddir/$date
pushd $builddir
while [ ! -d $date ] ; do
svn mkdir $svnserver/mysql.build/$date -m ""
svn checkout $svnserver/mysql.build/$date
if [ $? -ne 0 ] ; then rm -rf $date; fi
done
popd
testresult="PASS"
runfile=$testresultsdir/loader-stress-$rows-$dictionaries-$tokudb-$branchrevision-$ftcc-$ftccversion-$system-$arch-$myhost
if [ "$instancetype" != "" ] ; then runfilefile=$runfile-$instancetype; fi
rm -f $runfile
# checkout the code
if [ -d loader-stress-$branchrevision ] ; then rm -rf loader-stress-$branchrevision; fi
mkdir loader-stress-$branchrevision
if [ $branch = "." ] ; then branch=toku; fi
retry svn export -r $revision -q $svnserver/$branch/$tokudb loader-stress-$branchrevision/$tokudb
exitcode=$?
if [ $exitcode != 0 ] ; then
testresult="FAIL"
fi
# build
if [ $ftcc = icc ] ; then
d=/opt/intel/bin
if [ -d $d ] ; then
export PATH=$d:$PATH
. $d/compilervars.sh intel64
fi
d=/opt/intel/cilkutil/bin
if [ -d $d ] ; then
export PATH=$d:$PATH
fi
fi
if [ $testresult = "PASS" ] ; then
pushd loader-stress-$branchrevision/$tokudb
echo `date` make release -s CC=$ftcc HAVE_CILK=$have_cilk BRTLOADER=$brtloader >>$runfile
make -s release CC=$ftcc HAVE_CILK=$have_cilk BRTLOADER=$brtloader >>$runfile 2>&1
exitcode=$?
echo `date` complete $exitcode >>$runfile
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
popd
fi
if [ $testresult = "PASS" ] ; then
pushd loader-stress-$branchrevision/$tokudb/src/tests
echo `date` make loader-stress-test.tdb CC=$ftcc HAVE_CILK=$have_cilk >>$runfile
make loader-stress-test.tdb -s CC=$ftcc HAVE_CILK=$have_cilk >>$runfile 2>&1
exitcode=$?
echo `date` complete $exitcode >>$runfile
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
popd
fi
# run
if [ $testresult = "PASS" ] ; then
pushd loader-stress-$branchrevision/$tokudb/src/tests
echo `date` ./loader-stress-test.tdb -v -r $rows -d $dictionaries -c >>$runfile
./loader-stress-test.tdb -v -r $rows -d $dictionaries -c >>$runfile 2>&1
exitcode=$?
echo `date` complete $exitcode >>$runfile
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
popd
fi
if [ $commit != 0 ] ; then
svn add $runfile
retry svn commit -m \"$testresult loader stress $rows $dictionaries $tokudb $branchrevision $system $arch $myhost\" $runfile
fi
popd
if [ $testresult = "PASS" ] ; then exitcode=0; else exitcode=1; fi
exit $exitcode
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment