mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 14:54:20 +01:00
#4389 update the loader stress test refs[t:4389]
git-svn-id: file:///svn/toku/tokudb@38782 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
parent
ea0ba57f66
commit
1fe6fe212d
1 changed files with 164 additions and 0 deletions
164
scripts/run.loader.stress.bash
Executable file
164
scripts/run.loader.stress.bash
Executable file
|
@ -0,0 +1,164 @@
|
|||
#!/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
|
Loading…
Add table
Reference in a new issue