mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 14:32:34 +01:00
3719bf2c2f
git-svn-id: file:///svn/toku/tokudb@43686 c7de825b-a66e-492c-adef-691d508d4ae1
201 lines
5.5 KiB
Bash
Executable file
201 lines
5.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
function usage() {
|
|
echo "run db-benchmark-test"
|
|
echo "[--tokudb=$tokudb"
|
|
echo "[--revision=$revision]"
|
|
echo "[--branch=$branch]"
|
|
echo "[--suffix=$suffix]"
|
|
echo "[--commit=$commit]"
|
|
echo "[--cc=$cc]"
|
|
echo "[--n=$n]"
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
n=100
|
|
cc=gcc44
|
|
ft_loader=cilk
|
|
branch=toku
|
|
revision=0
|
|
tokudb=tokudb
|
|
suffix=.
|
|
commit=0
|
|
svnserver=https://svn.tokutek.com/tokudb
|
|
basedir=$HOME/svn.build
|
|
builddir=$basedir/tokudb.build
|
|
system=`uname -s | tr [:upper:] [:lower:]`
|
|
arch=`uname -m | tr [:upper:] [:lower:]`
|
|
hostname=`hostname`
|
|
instancetype=""
|
|
|
|
# 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
|
|
|
|
if [ $cc = 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
|
|
|
|
# require a revision
|
|
if [ $revision -eq 0 ] ; then exit 1; fi
|
|
if [ $branch = "." ] ; then branch="toku"; fi
|
|
|
|
function append() {
|
|
local s=""; local x
|
|
for x in $*; do
|
|
if [ "$s" != "" ] ; then s=$s-$x; else s=$x; fi
|
|
done
|
|
echo $s
|
|
}
|
|
|
|
# setup the branchrevision string
|
|
branchrevision=""
|
|
if [ $branch != "toku" ] ; then branchrevision=$(append $branchrevision $(basename $branch)); fi
|
|
if [ $tokudb != "tokudb" ] ; then branchrevision=$(append $branchrevision $tokudb); fi
|
|
branchrevision=$(append $branchrevision $revision)
|
|
if [ $suffix != "." ] ; then branchrevision=$(append $branchrevision $suffix); fi
|
|
|
|
# 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`
|
|
pushd $builddir
|
|
while [ ! -d $date ] ; do
|
|
svn mkdir $svnserver/mysql.build/$date -m ""
|
|
svn co -q $svnserver/mysql.build/$date
|
|
if [ $? -ne 0 ] ; then rm -rf $date; fi
|
|
done
|
|
popd
|
|
testresultsdir=$builddir/$date
|
|
|
|
gccversion=`$cc --version|head -1|cut -f3 -d" "`
|
|
|
|
runfile=$testresultsdir/db-benchmark-test-$branchrevision-$cc-$gccversion-$system-$arch-$hostname
|
|
if [ "$instancetype" != "" ] ; then runfile=$runfile-$instancetype; fi
|
|
rm -rf $runfile
|
|
|
|
testresult="PASS"
|
|
testdir=db-benchmark-test-$branchrevision
|
|
rm -rf $testdir
|
|
|
|
# checkout the tokudb branch
|
|
if [ $testresult = "PASS" ] ; then
|
|
retry svn export -q https://svn.tokutek.com/tokudb/$branch/$tokudb $testdir
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
fi
|
|
|
|
# build it
|
|
if [ $testresult = "PASS" ] ; then
|
|
pushd $testdir
|
|
make release -s CC=$cc GCCVERSION=$gccversion FTLOADER=$ft_loader >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
popd
|
|
pushd $testdir/db-benchmark-test
|
|
make build.tdb CC=$cc GCCVERSION=$gccversion -s >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
popd
|
|
fi
|
|
|
|
# run tests
|
|
if [ $testresult = "PASS" ] ; then
|
|
let i=$n
|
|
pushd $testdir/db-benchmark-test
|
|
echo ./db-benchmark-test-tokudb -x $i >>$runfile 2>&1
|
|
./db-benchmark-test-tokudb -x $i >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
echo ./scanscan-tokudb --prelock --prelockflag >>$runfile 2>&1
|
|
./scanscan-tokudb --prelock --prelockflag >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
echo ./scanscan-tokudb --lwc --prelock --prelockflag >>$runfile 2>&1
|
|
./scanscan-tokudb --lwc --prelock --prelockflag >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
popd
|
|
fi
|
|
|
|
if [ $testresult = "PASS" ] ; then
|
|
let i=2*$n
|
|
pushd $testdir/db-benchmark-test
|
|
echo ./db-benchmark-test-tokudb -x --norandom $i >>$runfile 2>&1
|
|
./db-benchmark-test-tokudb -x --norandom $i >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
echo ./scanscan-tokudb --prelock --prelockflag >>$runfile 2>&1
|
|
./scanscan-tokudb --prelock --prelockflag >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
echo ./scanscan-tokudb --lwc --prelock --prelockflag >>$runfile 2>&1
|
|
./scanscan-tokudb --lwc --prelock --prelockflag >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
popd
|
|
fi
|
|
|
|
if [ $testresult = "PASS" ] ; then
|
|
let i=2*$n
|
|
pushd $testdir/db-benchmark-test
|
|
echo ./db-benchmark-test-tokudb -x --noserial $i >>$runfile 2>&1
|
|
./db-benchmark-test-tokudb -x --noserial $i >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
echo ./scanscan-tokudb --prelock --prelockflag >>$runfile 2>&1
|
|
./scanscan-tokudb --prelock --prelockflag >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
echo ./scanscan-tokudb --lwc --prelock --prelockflag >>$runfile 2>&1
|
|
./scanscan-tokudb --lwc --prelock --prelockflag >>$runfile 2>&1
|
|
exitcode=$?
|
|
if [ $exitcode != 0 ] ; then testresult="FAIL"; fi
|
|
popd
|
|
fi
|
|
|
|
# commit results
|
|
if [ $commit != 0 ] ; then
|
|
svn add $runfile
|
|
retry svn commit -m \"$testresult db-benchmark-test $branchrevision $system $arch\" $runfile
|
|
fi
|
|
|
|
popd
|
|
|
|
exit 0
|