|
|
|
@ -3,10 +3,13 @@ |
|
|
|
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]" |
|
|
|
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 |
|
|
|
@ -34,6 +37,8 @@ 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 |
|
|
|
@ -49,7 +54,11 @@ if [[ ! ( ( $ctest_model = Nightly ) || ( $ctest_model = Experimental ) || ( $ct |
|
|
|
usage |
|
|
|
fi |
|
|
|
|
|
|
|
export CMAKE_PREFIX_PATH=/usr/local/BerkeleyDB.$BDBVERSION:$CMAKE_PREFIX_PATH |
|
|
|
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() { |
|
|
|
@ -63,13 +72,15 @@ system=$(uname -s | tr '[:upper:]' '[:lower:]' | sanitize) |
|
|
|
release=$(uname -r | sanitize) |
|
|
|
arch=$(uname -m | sanitize) |
|
|
|
date=$(date +%Y%m%d) |
|
|
|
ncpus=$(sysctl hw.ncpu | awk '{print $2}') |
|
|
|
njobs=3 #$(echo "$ncpus / 3" | bc) |
|
|
|
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) |
|
|
|
|
|
|
|
export ftar=`which ar` |
|
|
|
export ftld=`which ld` |
|
|
|
|
|
|
|
export GCCVERSION=$($ftcxx --version|head -1|cut -f3 -d" ") |
|
|
|
GCCVERSION=$($ftcc --version|head -1|cut -f3 -d" ") |
|
|
|
export GCCVERSION |
|
|
|
CC=$ftcc |
|
|
|
export CC |
|
|
|
CXX=$ftcxx |
|
|
|
export CXX |
|
|
|
|
|
|
|
function retry() { |
|
|
|
local cmd |
|
|
|
@ -111,23 +122,25 @@ if [[ $commit -eq 1 ]]; then |
|
|
|
set -e |
|
|
|
popd |
|
|
|
|
|
|
|
tracefilepfx=$builddir/$productname+$ftcxx-$GCCVERSION+bdb-$BDBVERSION+$nodename+$system+$release+$arch |
|
|
|
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 |
|
|
|
if [ -f /etc/issue ]; then cat /etc/issue >>$tracefile 2>&1 ; fi |
|
|
|
if [ -f /proc/version ]; then cat /proc/version >>$tracefile 2>&1 ; fi |
|
|
|
if [ -f /proc/cpuinfo ]; then cat /proc/cpuinfo >>$tracefile 2>&1 ; fi |
|
|
|
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() { |
|
|
|
@ -147,32 +160,31 @@ else |
|
|
|
longtests=OFF |
|
|
|
fi |
|
|
|
################################################################################ |
|
|
|
## run valgrind on gcc optimized build |
|
|
|
## run normal and valgrind on optimized build |
|
|
|
resultsdir=$tracefilepfx-Release |
|
|
|
mkdir $resultsdir |
|
|
|
tracefile=$tracefilepfx-Release/trace |
|
|
|
|
|
|
|
getsysinfo $tracefile |
|
|
|
|
|
|
|
mkdir -p $FULLTOKUDBDIR/gccopt >/dev/null 2>&1 |
|
|
|
cd $FULLTOKUDBDIR/gccopt |
|
|
|
sed -ie 's/192.168.1.114/localhost:8080/' ../CTestConfig.cmake |
|
|
|
CC=$ftcc CXX=$ftcxx cmake \ |
|
|
|
mkdir -p $FULLTOKUDBDIR/opt >/dev/null 2>&1 |
|
|
|
cd $FULLTOKUDBDIR/opt |
|
|
|
cmake \ |
|
|
|
-D CMAKE_BUILD_TYPE=Release \ |
|
|
|
-D USE_VALGRIND=OFF \ |
|
|
|
-D BUILD_TESTING=ON \ |
|
|
|
-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}" .. |
|
|
|
sed -ie 's/192.168.1.114/localhost:8080/' ../CTestConfig.cmake |
|
|
|
set +e |
|
|
|
ctest -j$njobs \ |
|
|
|
-D ${ctest_model}Start \ |
|
|
|
@ -180,12 +192,12 @@ ctest -j$njobs \ |
|
|
|
-D ${ctest_model}Configure \ |
|
|
|
-D ${ctest_model}Build \ |
|
|
|
-D ${ctest_model}Test \ |
|
|
|
-E '/drd|/helgrind' \ |
|
|
|
-E '/drd' \ |
|
|
|
2>&1 | tee -a $tracefile |
|
|
|
ctest -j$njobs \ |
|
|
|
-D ${ctest_model}MemCheck \ |
|
|
|
-E '^ydb/.*\.bdb$|test1426.tdb|/drd' \ |
|
|
|
2>&1 | tee -a $tracefile |
|
|
|
#ctest -j$njobs \ |
|
|
|
# -D ${ctest_model}MemCheck \ |
|
|
|
# -E '^ydb/.*\.bdb$|test1426.tdb|drd_' \ |
|
|
|
# 2>&1 | tee -a $tracefile |
|
|
|
set -e |
|
|
|
|
|
|
|
cp $tracefile notes.txt |
|
|
|
@ -224,7 +236,7 @@ BEGIN { |
|
|
|
} |
|
|
|
} |
|
|
|
END { |
|
|
|
#print "ERRORS=" errs; |
|
|
|
print "ERRORS=" errs; |
|
|
|
if (fail>0) { |
|
|
|
print "FAIL=" fail |
|
|
|
} |
|
|
|
@ -257,28 +269,28 @@ BEGIN { |
|
|
|
svn commit -F "$cf" $resultsdir |
|
|
|
rm $cf |
|
|
|
fi |
|
|
|
exit 0 |
|
|
|
|
|
|
|
################################################################################ |
|
|
|
## run valgrind on gcc debug build |
|
|
|
## run drd tests on debug build |
|
|
|
resultsdir=$tracefilepfx-Debug |
|
|
|
mkdir $resultsdir |
|
|
|
tracefile=$tracefilepfx-Debug/trace |
|
|
|
|
|
|
|
getsysinfo $tracefile |
|
|
|
|
|
|
|
mkdir -p $FULLTOKUDBDIR/gccdbg >/dev/null 2>&1 |
|
|
|
cd $FULLTOKUDBDIR/gccdbg |
|
|
|
CC=gcc47 CXX=g++47 cmake \ |
|
|
|
mkdir -p $FULLTOKUDBDIR/dbg >/dev/null 2>&1 |
|
|
|
cd $FULLTOKUDBDIR/dbg |
|
|
|
cmake \ |
|
|
|
-D CMAKE_BUILD_TYPE=Debug \ |
|
|
|
-D USE_VALGRIND=ON \ |
|
|
|
-D BUILD_TESTING=ON \ |
|
|
|
-D USE_BDB=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 |
|
|
|
@ -291,7 +303,7 @@ ctest -j$njobs \ |
|
|
|
-D ${ctest_model}Configure \ |
|
|
|
-D ${ctest_model}Build \ |
|
|
|
-D ${ctest_model}Test \ |
|
|
|
-R 'drd_' \ |
|
|
|
-R '/drd' \ |
|
|
|
2>&1 | tee -a $tracefile |
|
|
|
set -e |
|
|
|
|
|
|
|
@ -349,26 +361,27 @@ BEGIN { |
|
|
|
fi |
|
|
|
|
|
|
|
################################################################################ |
|
|
|
## run gcov on gcc debug build |
|
|
|
## run gcov on debug build |
|
|
|
resultsdir=$tracefilepfx-Coverage |
|
|
|
mkdir $resultsdir |
|
|
|
tracefile=$tracefilepfx-Coverage/trace |
|
|
|
|
|
|
|
getsysinfo $tracefile |
|
|
|
|
|
|
|
mkdir -p $FULLTOKUDBDIR/Coverage >/dev/null 2>&1 |
|
|
|
cd $FULLTOKUDBDIR/Coverage |
|
|
|
CC=gcc47 CXX=g++47 cmake \ |
|
|
|
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_CILK=OFF \ |
|
|
|
-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 |
|
|
|
|