Commit e26b1eda authored by John Esmet's avatar John Esmet

FT-580 Remove unused scripts

parent a6bc5d68
#!/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
#!/bin/bash
function usage() {
echo "run.fractal.tree.tests.bash - run the nightly fractal tree test suite"
echo "[--ftcc=$ftcc] [--ftcxx=$ftcxx] [--BDBVERSION=$BDBVERSION] [--ctest_model=$ctest_model]"
echo "[--commit=$commit] [--generator=$generator] [--toku_svnroot=$toku_svnroot]"
return 1
}
[ -f /etc/profile.d/gcc47.sh ] && . /etc/profile.d/gcc47.sh
[ -f /etc/profile.d/binutils222.sh ] && . /etc/profile.d/binutils222.sh
set -e
pushd $(dirname $0) &>/dev/null
SCRIPTDIR=$PWD
popd &>/dev/null
FULLTOKUDBDIR=$(dirname $SCRIPTDIR)
TOKUDBDIR=$(basename $FULLTOKUDBDIR)
BRANCHDIR=$(basename $(dirname $FULLTOKUDBDIR))
function make_tokudb_name() {
local tokudb_dir=$1
local tokudb=$2
if [ $tokudb_dir = "toku" ] ; then
echo $tokudb
else
echo $(echo $tokudb_dir-$tokudb | tr / -)
fi
}
tokudb_name=$(make_tokudb_name $BRANCHDIR $TOKUDBDIR)
export TOKUDB_NAME=$tokudb_name
productname=$tokudb_name
ftcc=gcc47
ftcxx=g++47
BDBVERSION=5.3
ctest_model=Nightly
generator="Unix Makefiles"
toku_svnroot=$FULLTOKUDBDIR/../..
commit=1
while [ $# -gt 0 ] ; do
arg=$1; shift
if [[ $arg =~ --(.*)=(.*) ]] ; then
eval ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}
else
usage; exit 1;
fi
done
if [[ ! ( ( $ctest_model = Nightly ) || ( $ctest_model = Experimental ) || ( $ctest_model = Continuous ) ) ]]; then
echo "--ctest_model must be Nightly, Experimental, or Continuous"
usage
fi
BDBDIR=/usr/local/BerkeleyDB.$BDBVERSION
if [ -d $BDBDIR ] ; then
CMAKE_PREFIX_PATH=$BDBDIR:$CMAKE_PREFIX_PATH
export CMAKE_PREFIX_PATH
fi
# delete some characters that cygwin and osx have trouble with
function sanitize() {
tr -d '[/:\\\\()]'
}
# gather some info
svnserver=https://svn.tokutek.com/tokudb
nodename=$(uname -n)
system=$(uname -s | tr '[:upper:]' '[:lower:]' | sanitize)
release=$(uname -r | sanitize)
arch=$(uname -m | sanitize)
date=$(date +%Y%m%d)
ncpus=$([ -f /proc/cpuinfo ] && (grep bogomips /proc/cpuinfo | wc -l) || sysctl -n hw.ncpu)
njobs=$(if [ $ncpus -gt 8 ] ; then echo "$ncpus / 3" | bc ; else echo "$ncpus" ; fi)
GCCVERSION=$($ftcc --version|head -1|cut -f3 -d" ")
export GCCVERSION
CC=$ftcc
export CC
CXX=$ftcxx
export CXX
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
}
if [[ $commit -eq 1 ]]; then
svnbase=~/svn.build
if [ ! -d $svnbase ] ; then mkdir $svnbase ; fi
# checkout the build dir
buildbase=$svnbase/tokudb.build
if [ ! -d $buildbase ] ; then
mkdir $buildbase
fi
# make the build directory, possibly on multiple machines simultaneously, there can be only one
builddir=$buildbase/$date
pushd $buildbase
set +e
svn mkdir $svnserver/tokudb.build/$date -m "" || true
retry svn co -q $svnserver/tokudb.build/$date
if [ ! -d $date ] ; then
exit 1
fi
set -e
popd
tracefilepfx=$builddir/$productname+$ftcc-$GCCVERSION+bdb-$BDBVERSION+$nodename+$system+$release+$arch
else
tracefilepfx=$FULLTOKUDBDIR/test-trace
fi
function getsysinfo() {
tracefile=$1; shift
set +e
uname -a >$tracefile 2>&1
ulimit -a >>$tracefile 2>&1
cmake --version >>$tracefile 2>&1
$ftcc -v >>$tracefile 2>&1
$ftcxx -v >>$tracefile 2>&1
valgrind --version >>$tracefile 2>&1
cat /etc/issue >>$tracefile 2>&1
cat /proc/version >>$tracefile 2>&1
cat /proc/cpuinfo >>$tracefile 2>&1
env >>$tracefile 2>&1
set -e
}
function get_latest_svn_revision() {
svn info $1 | awk -v ORS="" '/Last Changed Rev:/ { print $4 }'
}
function my_mktemp() {
mktemp /tmp/$(whoami).$1.XXXXXXXXXX
}
yesterday="$(date -u -d yesterday +%F) 03:59:00 +0000"
if [[ $commit -eq 1 ]]; then
# hack to make long tests run nightly but not when run in experimental mode
longtests=ON
else
longtests=OFF
fi
################################################################################
## run normal and valgrind on optimized build
resultsdir=$tracefilepfx-Release
mkdir $resultsdir
tracefile=$tracefilepfx-Release/trace
getsysinfo $tracefile
mkdir -p $FULLTOKUDBDIR/opt >/dev/null 2>&1
cd $FULLTOKUDBDIR/opt
cmake \
-D CMAKE_BUILD_TYPE=Release \
-D USE_VALGRIND=ON \
-D USE_BDB=ON \
-D RUN_LONG_TESTS=$longtests \
-D USE_CTAGS=OFF \
-D USE_GTAGS=OFF \
-D USE_ETAGS=OFF \
-D USE_CSCOPE=OFF \
-D TOKU_SVNROOT="$toku_svnroot" \
-G "$generator" \
.. 2>&1 | tee -a $tracefile
cmake --system-information $resultsdir/sysinfo
make clean
# update to yesterday exactly just before ctest does nightly update
svn up -q -r "{$yesterday}" ..
set +e
ctest -j$njobs \
-D ${ctest_model}Start \
-D ${ctest_model}Update \
-D ${ctest_model}Configure \
-D ${ctest_model}Build \
-D ${ctest_model}Test \
-E '/drd|/helgrind' \
2>&1 | tee -a $tracefile
ctest -j$njobs \
-D ${ctest_model}MemCheck \
-E '^ydb/.*\.bdb$|test1426.tdb|/drd|/helgrind' \
2>&1 | tee -a $tracefile
set -e
cp $tracefile notes.txt
set +e
ctest -D ${ctest_model}Submit -A notes.txt \
2>&1 | tee -a $tracefile
set -e
rm notes.txt
tag=$(head -n1 Testing/TAG)
cp -r Testing/$tag $resultsdir
if [[ $commit -eq 1 ]]; then
cf=$(my_mktemp ftresult)
cat "$resultsdir/trace" | awk '
BEGIN {
errs=0;
look=0;
ORS=" ";
}
/[0-9]+% tests passed, [0-9]+ tests failed out of [0-9]+/ {
fail=$4;
total=$9;
pass=total-fail;
}
/^Memory checking results:/ {
look=1;
FS=" - ";
}
/Errors while running CTest/ {
look=0;
FS=" ";
}
{
if (look) {
errs+=$2;
}
}
END {
print "ERRORS=" errs;
if (fail>0) {
print "FAIL=" fail
}
print "PASS=" pass
}' >"$cf"
get_latest_svn_revision $FULLTOKUDBDIR >>"$cf"
echo -n " " >>"$cf"
cat "$resultsdir/trace" | awk '
BEGIN {
FS=": ";
}
/Build name/ {
print $2;
exit
}' >>"$cf"
(echo; echo) >>"$cf"
cat "$resultsdir/trace" | awk '
BEGIN {
printit=0
}
/[0-9]*\% tests passed, [0-9]* tests failed out of [0-9]*/ { printit=1 }
/Memory check project/ { printit=0 }
/^ Site:/ { printit=0 }
{
if (printit) {
print $0
}
}' >>"$cf"
svn add $resultsdir
svn commit -F "$cf" $resultsdir
rm $cf
fi
################################################################################
## run drd tests on debug build
resultsdir=$tracefilepfx-Debug
mkdir $resultsdir
tracefile=$tracefilepfx-Debug/trace
getsysinfo $tracefile
mkdir -p $FULLTOKUDBDIR/dbg >/dev/null 2>&1
cd $FULLTOKUDBDIR/dbg
cmake \
-D CMAKE_BUILD_TYPE=Debug \
-D USE_VALGRIND=ON \
-D USE_BDB=OFF \
-D RUN_LONG_TESTS=$longtests \
-D USE_CTAGS=OFF \
-D USE_GTAGS=OFF \
-D USE_ETAGS=OFF \
-D USE_CSCOPE=OFF \
-D CMAKE_C_FLAGS_DEBUG="-O1" \
-D CMAKE_CXX_FLAGS_DEBUG="-O1" \
-D TOKU_SVNROOT="$toku_svnroot" \
-G "$generator" \
.. 2>&1 | tee -a $tracefile
cmake --system-information $resultsdir/sysinfo
make clean
# update to yesterday exactly just before ctest does nightly update
svn up -q -r "{$yesterday}" ..
set +e
ctest -j$njobs \
-D ${ctest_model}Start \
-D ${ctest_model}Update \
-D ${ctest_model}Configure \
-D ${ctest_model}Build \
-D ${ctest_model}Test \
-R '/drd|/helgrind' \
2>&1 | tee -a $tracefile
set -e
cp $tracefile notes.txt
set +e
ctest -D ${ctest_model}Submit -A notes.txt \
2>&1 | tee -a $tracefile
set -e
rm notes.txt
tag=$(head -n1 Testing/TAG)
cp -r Testing/$tag $resultsdir
if [[ $commit -eq 1 ]]; then
cf=$(my_mktemp ftresult)
cat "$resultsdir/trace" | awk '
BEGIN {
ORS=" ";
}
/[0-9]+% tests passed, [0-9]+ tests failed out of [0-9]+/ {
fail=$4;
total=$9;
pass=total-fail;
}
END {
if (fail>0) {
print "FAIL=" fail
}
print "PASS=" pass
}' >"$cf"
get_latest_svn_revision $FULLTOKUDBDIR >>"$cf"
echo -n " " >>"$cf"
cat "$resultsdir/trace" | awk '
BEGIN {
FS=": ";
}
/Build name/ {
print $2;
exit
}' >>"$cf"
(echo; echo) >>"$cf"
cat "$resultsdir/trace" | awk '
BEGIN {
printit=0
}
/[0-9]*\% tests passed, [0-9]* tests failed out of [0-9]*/ { printit=1 }
/^ Site:/ { printit=0 }
{
if (printit) {
print $0
}
}' >>"$cf"
svn add $resultsdir
svn commit -F "$cf" $resultsdir
rm $cf
fi
################################################################################
## run gcov on debug build
resultsdir=$tracefilepfx-Coverage
mkdir $resultsdir
tracefile=$tracefilepfx-Coverage/trace
getsysinfo $tracefile
mkdir -p $FULLTOKUDBDIR/cov >/dev/null 2>&1
cd $FULLTOKUDBDIR/cov
cmake \
-D CMAKE_BUILD_TYPE=Debug \
-D BUILD_TESTING=ON \
-D USE_GCOV=ON \
-D USE_BDB=OFF \
-D RUN_LONG_TESTS=$longtests \
-D USE_CTAGS=OFF \
-D USE_GTAGS=OFF \
-D USE_ETAGS=OFF \
-D USE_CSCOPE=OFF \
-D TOKU_SVNROOT="$toku_svnroot" \
-G "$generator" \
.. 2>&1 | tee -a $tracefile
cmake --system-information $resultsdir/sysinfo
make clean
# update to yesterday exactly just before ctest does nightly update
svn up -q -r "{$yesterday}" ..
set +e
ctest -j$njobs \
-D ${ctest_model}Start \
-D ${ctest_model}Update \
-D ${ctest_model}Configure \
-D ${ctest_model}Build \
-D ${ctest_model}Test \
-D ${ctest_model}Coverage \
2>&1 | tee -a $tracefile
set -e
cp $tracefile notes.txt
set +e
ctest -D ${ctest_model}Submit -A notes.txt \
2>&1 | tee -a $tracefile
set -e
rm notes.txt
tag=$(head -n1 Testing/TAG)
cp -r Testing/$tag $resultsdir
if [[ $commit -eq 1 ]]; then
cf=$(my_mktemp ftresult)
cat "$resultsdir/trace" | awk '
BEGIN {
ORS=" ";
}
/Percentage Coverage:/ {
covpct=$3;
}
/[0-9]+% tests passed, [0-9]+ tests failed out of [0-9]+/ {
fail=$4;
total=$9;
pass=total-fail;
}
END {
print "COVERAGE=" covpct
if (fail>0) {
print "FAIL=" fail
}
print "PASS=" pass
}' >"$cf"
get_latest_svn_revision $FULLTOKUDBDIR >>"$cf"
echo -n " " >>"$cf"
cat "$resultsdir/trace" | awk '
BEGIN {
FS=": ";
}
/Build name/ {
print $2;
exit
}' >>"$cf"
(echo; echo) >>"$cf"
cat "$resultsdir/trace" | awk '
BEGIN {
printit=0
}
/[0-9]*\% tests passed, [0-9]* tests failed out of [0-9]*/ { printit=1 }
/^ Site:/ { printit=0 }
{
if (printit) {
print $0
}
}' >>"$cf"
svn add $resultsdir
svn commit -F "$cf" $resultsdir
rm $cf
fi
exit 0
#!/usr/bin/env bash
run.fractal.tree.tests.bash --ftcc=icc $*
#!/bin/bash
pushd $(dirname $0) &>/dev/null
SCRIPTDIR=$PWD
popd &>/dev/null
exec $SCRIPTDIR/run.fractal.tree.tests.bash --ctest_model=Experimental --commit=0 "$@"
#!/usr/bin/env bash
function usage() {
echo "run the loader verify test"
echo "[--rows=$rows]"
echo "[--dictionaries=$dictionaries]"
echo "[--ft_loader=$ft_loader]"
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
ft_loader=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
# 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
# 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
if [ $testresult = "PASS" ] ; then
pushd loader-stress-$branchrevision/$tokudb
echo `date` make release -s CC=$ftcc HAVE_CILK=$have_cilk FTLOADER=$ft_loader >>$runfile
make -s release CC=$ftcc HAVE_CILK=$have_cilk FTLOADER=$ft_loader >>$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 $ftcc $ftccversion $system $arch $myhost\" $runfile
fi
popd
if [ $testresult = "PASS" ] ; then exitcode=0; else exitcode=1; fi
exit $exitcode
#!/bin/bash
# $Id$
DOC=<<EOF
PARAMETERS
table size: small (2 000), medium (200 000), large (50 000 000)
cachetable size: small (num_elements * 50), large (1 000 000 000)
update threads: 1, random number <= 20
point query threads: 1, random number <= 20
recover-test_stress1, recover-test_stress2
DATA
currently running tests
log of success/failure ("./recover-test_stress1.tdb --num_elements blah blah blah PASS")
if failed:
parameters
corefile
stdout/stderr
data directory
EOF
set -e
. /opt/intel/bin/compilervars.sh intel64
scriptname=$(basename "$0")
toku_toplevel=$(dirname $(dirname $(readlink -f "$PWD/$0")))
log=/tmp/run.stress-tests.log
savedir=/tmp/run.stress-tests.failures
usage() {
echo "Usage: $scriptname" 1>&2
echo " [--toku_toplevel=<dir>]" 1>&2
echo " [--log=<file>]" 1>&2
echo " [--savedir=<dir>]" 1>&2
}
# parse the command line
while [ $# -gt 0 ] ; do
arg=$1; shift
if [[ $arg =~ --(.*)=(.*) ]] ; then
ok=no
for opt in toku_toplevel log savedir
do
if [[ ${BASH_REMATCH[1]} = $opt ]]
then
ok=yes
fi
done
if [[ $ok = no ]]
then
usage; exit 1
fi
eval ${BASH_REMATCH[1]}=${BASH_REMATCH[2]}
else
usage; exit 1
fi
done
src_tests="${toku_toplevel}/src/tests"
testnames=(test_stress1.tdb \
test_stress5.tdb \
test_stress6.tdb)
recover_testnames=(recover-test_stress1.tdb \
recover-test_stress2.tdb \
recover-test_stress3.tdb)
save_failure() {
dir="$1"; shift
out="$1"; shift
envdir="$1"; shift
rev=$1; shift
exec="$1"; shift
table_size=$1; shift
cachetable_size=$1; shift
num_ptquery=$1; shift
num_update=$1; shift
phase=$1; shift
dest="${dir}/${exec}-${table_size}-${cachetable_size}-${num_ptquery}-${num_update}-${phase}-${rev}-$$"
mkdir -p "$dest"
mv $out "${dest}/output.txt"
mv core* "${dest}/"
mv $envdir "${dest}/"
}
running=no
run_test() {
rev=$1; shift
exec="$1"; shift
table_size="$1"; shift
cachetable_size="$1"; shift
num_ptquery="$1"; shift
num_update="$1"; shift
mylog="$1"; shift
mysavedir="$1"; shift
rundir=$(mktemp -d ./rundir.XXXXXXXX)
tmplog=$(mktemp)
ulimit -c unlimited
t0="$(date)"
t1=""
t2=""
envdir="../${exec}-${table_size}-${cachetable_size}-${num_ptquery}-${num_update}-$$.dir"
cd $rundir
if LD_LIBRARY_PATH=../../../lib:$LD_LIBRARY_PATH \
../$exec -v --only_create --num_seconds 600 --envdir "$envdir" \
--num_elements $table_size \
--cachetable_size $cachetable_size &> $tmplog
then
rm -f $tmplog
t1="$(date)"
if LD_LIBRARY_PATH=../../../lib:$LD_LIBRARY_PATH \
../$exec -v --only_stress --num_seconds 600 --no-crash_on_update_failure --envdir "$envdir" \
--num_elements $table_size \
--cachetable_size $cachetable_size \
--num_ptquery_threads $num_ptquery \
--num_update_threads $num_update &> $tmplog
then
rm -f $tmplog
t2="$(date)"
echo "\"$exec\",$rev,$table_size,$cachetable_size,$num_ptquery,$num_update,$t0,$t1,$t2,PASS" | tee -a "$mylog"
else
save_failure "$mysavedir" $tmplog $envdir $rev $exec $table_size $cachetable_size $num_ptquery $num_update stress
echo "\"$exec\",$rev,$table_size,$cachetable_size,$num_ptquery,$num_update,$t0,$t1,$t2,FAIL" | tee -a "$mylog"
fi
else
save_failure "$mysavedir" $tmplog $envdir $rev $exec $table_size $cachetable_size $num_ptquery $num_update create
echo "\"$exec\",$rev,$table_size,$cachetable_size,$num_ptquery,$num_update,$t0,$t1,$t2,FAIL" | tee -a "$mylog"
fi
cd ..
rm -rf $rundir "$envdir"
}
loop_test() {
rev=$1; shift
exec="$1"; shift
table_size="$1"; shift
cachetable_size="$1"; shift
mylog="$1"; shift
mysavedir="$1"; shift
ptquery_rand=0
update_rand=0
while [[ $running = "yes" ]]
do
num_ptquery=1
num_update=1
if [[ $ptquery_rand -gt 1 ]]
then
(( num_ptquery = $RANDOM % 16 ))
fi
if [[ $update_rand -gt 0 ]]
then
(( num_update = $RANDOM % 16 ))
fi
(( ptquery_rand = (ptquery_rand + 1) % 4 ))
(( update_rand = (update_rand + 1) % 2 ))
run_test $rev $exec $table_size $cachetable_size $num_ptquery $num_update $mylog $mysavedir
done
}
run_recover_test() {
rev=$1; shift
exec="$1"; shift
table_size="$1"; shift
cachetable_size="$1"; shift
num_ptquery="$1"; shift
num_update="$1"; shift
mylog="$1"; shift
mysavedir="$1"; shift
rundir=$(mktemp -d ./rundir.XXXXXXXX)
tmplog=$(mktemp)
ulimit -c unlimited
t0="$(date)"
t1=""
t2=""
envdir="../${exec}-${table_size}-${cachetable_size}-${num_ptquery}-${num_update}-$$.dir"
cd $rundir
if ! LD_LIBRARY_PATH=../../../lib:$LD_LIBRARY_PATH \
../$exec -v --test --num_seconds 600 --no-crash_on_update_failure --envdir "$envdir" \
--num_elements $table_size \
--cachetable_size $cachetable_size \
--num_ptquery_threads $num_ptquery \
--num_update_threads $num_update &> $tmplog
then
rm -f $tmplog
t1="$(date)"
if LD_LIBRARY_PATH=../../../lib:$LD_LIBRARY_PATH \
../$exec -v --recover --envdir "$envdir" \
--num_elements $table_size \
--cachetable_size $cachetable_size &> $tmplog
then
rm -f $tmplog
t2="$(date)"
echo "\"$exec\",$rev,$table_size,$cachetable_size,$num_ptquery,$num_update,$t0,$t1,$t2,PASS" | tee -a "$mylog"
else
save_failure "$mysavedir" $tmplog $envdir $rev $exec $table_size $cachetable_size $num_ptquery $num_update recover
echo "\"$exec\",$rev,$table_size,$cachetable_size,$num_ptquery,$num_update,$t0,$t1,$t2,FAIL" | tee -a "$mylog"
fi
else
save_failure "$mysavedir" $tmplog $envdir $rev $exec $table_size $cachetable_size $num_ptquery $num_update test
echo "\"$exec\",$rev,$table_size,$cachetable_size,$num_ptquery,$num_update,$t0,$t1,$t2,FAIL" | tee -a "$mylog"
fi
cd ..
rm -rf $rundir "$envdir"
}
loop_recover_test() {
rev=$1; shift
exec="$1"; shift
table_size="$1"; shift
cachetable_size="$1"; shift
mylog="$1"; shift
mysavedir="$1"; shift
ptquery_rand=0
update_rand=0
while [[ $running = "yes" ]]
do
num_ptquery=1
num_update=1
if [[ $ptquery_rand -gt 1 ]]
then
(( num_ptquery = $RANDOM % 16 ))
fi
if [[ $update_rand -gt 0 ]]
then
(( num_update = $RANDOM % 16 ))
fi
(( ptquery_rand = (ptquery_rand + 1) % 4 ))
(( update_rand = (update_rand + 1) % 2 ))
run_recover_test $rev $exec $table_size $cachetable_size $num_ptquery $num_update $mylog $mysavedir
done
}
declare -a pids=(0)
i=0
savepid() {
pids[$i]=$1
(( i = i + 1 ))
}
killchildren() {
kill ${pids[@]} || true
for exec in ${testnames[@]} ${recover_testnames[@]}
do
pkill -f $exec || true
done
}
trap killchildren INT TERM EXIT
mkdir -p $log
mkdir -p $savedir
while true
do
(cd $toku_toplevel; \
svn update; \
make CC=icc DEBUG=0 HAVE_CILK=0 clean fastbuild; \
make CC=icc DEBUG=0 HAVE_CILK=0 -C src/tests ${testnames[@]} ${recover_testnames[@]})
cd $src_tests
rev=$(svn info ../.. | awk '/Revision/ { print $2 }')
running=yes
for exec in ${testnames[@]}
do
for table_size in 2000 200000 50000000
do
(( small_cachetable = table_size * 50 ))
suffix="${exec}-${table_size}-${small_cachetable}-$$"
touch "${log}/${suffix}"
loop_test $rev $exec $table_size $small_cachetable "${log}/${suffix}" "${savedir}/${suffix}" & savepid $!
suffix="${exec}-${table_size}-1000000000-$$"
touch "${log}/${suffix}"
loop_test $rev $exec $table_size 1000000000 "${log}/${suffix}" "${savedir}/${suffix}" & savepid $!
done
done
for exec in ${recover_testnames[@]}
do
for table_size in 2000 200000 50000000
do
(( small_cachetable = table_size * 50 ))
suffix="${exec}-${table_size}-${small_cachetable}-$$"
touch "${log}/${suffix}"
loop_recover_test $rev $exec $table_size $small_cachetable "${log}/${suffix}" "${savedir}/${suffix}" & savepid $!
suffix="${exec}-${table_size}-1000000000-$$"
touch "${log}/${suffix}"
loop_recover_test $rev $exec $table_size 1000000000 "${log}/${suffix}" "${savedir}/${suffix}" & savepid $!
done
done
sleep 1d
running=no
killchildren
wait ${pids[@]} || true
idx=0
for pid in ${pids[@]}
do
pids[$idx]=0
(( idx = idx + 1 ))
done
done
#!/usr/bin/env bash
set -e
test $# -ge 4
tdbbin=$1; shift
bdbbin=$1; shift
tdbenv=$1; shift
bdbenv=$1; shift
tdbdump=$1; shift
bdbdump=$1; shift
TOKU_TEST_FILENAME=$bdbenv $bdbbin
$bdbdump -p -h $bdbenv main > dump.bdb.1426
TOKU_TEST_FILENAME=$tdbenv $tdbbin
$tdbdump -x -p -h $tdbenv main > dump.tdb.1426
diff -I db_pagesize=4096 dump.bdb.1426 dump.tdb.1426
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