86 lines
2.3 KiB
Bash
86 lines
2.3 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Get the list of branches to check. Use default if no branch specified.
|
||
|
if [ "$#" -ne "0" ]
|
||
|
then
|
||
|
branches="$@"
|
||
|
else
|
||
|
branches="default"
|
||
|
fi
|
||
|
|
||
|
# Create a logfile based on the current time
|
||
|
timestamp=`eval date +%d_%m_%Y_%R:%S`
|
||
|
logfile="/tmp/gazebo_test-$timestamp.txt"
|
||
|
logfileVerbose="/tmp/gazebo_test-$timestamp-verbose.txt"
|
||
|
logfileRaw=/tmp/gazebo_build/raw.log
|
||
|
|
||
|
# Create working directory
|
||
|
cd
|
||
|
rm -rf /tmp/gazebo_build
|
||
|
mkdir /tmp/gazebo_build
|
||
|
|
||
|
# Clone
|
||
|
hg clone https://bitbucket.org/osrf/gazebo /tmp/gazebo_build/source
|
||
|
|
||
|
start_time=`eval date +%s`
|
||
|
|
||
|
PATH=/tmp/gazebo_build/install/bin:$PATH
|
||
|
LD_LIBRARY_PATH=/tmp/gazebo_build/install/lib:$LD_LIBRARY_PATH
|
||
|
|
||
|
# Process each branch from the command line
|
||
|
for branch in $branches
|
||
|
do
|
||
|
# Get the correct branch
|
||
|
cd /tmp/gazebo_build/source
|
||
|
hg up $branch
|
||
|
|
||
|
# Build
|
||
|
rm -rf build
|
||
|
mkdir build
|
||
|
cd build
|
||
|
cmake -DCMAKE_INSTALL_PREFIX=/tmp/gazebo_build/install ../
|
||
|
make -j4 install
|
||
|
. /tmp/gazebo_build/install/share/gazebo/setup.sh
|
||
|
|
||
|
echo "Branch: $branch" >> $logfile
|
||
|
echo "==================================================" >> $logfile
|
||
|
echo "Test Results" >> $logfile
|
||
|
# Run make test many times, only capture failures
|
||
|
for i in {1..10}
|
||
|
do
|
||
|
cd /tmp/gazebo_build/source/build
|
||
|
|
||
|
# make test with verbose output
|
||
|
make test ARGS="-VV" &> $logfileRaw
|
||
|
grep '^ *[0-9]*/[0-9]* .*\*\*\*' $logfileRaw >> $logfile
|
||
|
|
||
|
# for each failed test
|
||
|
for f in `grep '^ *[0-9]*/[0-9]* .*\*\*\*' $logfileRaw | \
|
||
|
sed -e 's@^ *\([0-9]*\)/.*@\1@'`
|
||
|
do
|
||
|
# output some brief info
|
||
|
echo Try $i of 10, failed test $f >> $logfileVerbose
|
||
|
# then send the raw output of both the test and its companion test_ran
|
||
|
# to the logfile for perusal
|
||
|
grep '^ *'`echo "(($f-1)/2)*2+1" | bc`':' $logfileRaw >> $logfileVerbose
|
||
|
grep '^ *'`echo "(($f-1)/2)*2+2" | bc`':' $logfileRaw >> $logfileVerbose
|
||
|
done
|
||
|
done
|
||
|
|
||
|
echo "Code Check Results" >> $logfile
|
||
|
# Run code checker
|
||
|
cd /tmp/gazebo_build/source
|
||
|
sh tools/code_check.sh >> $logfile
|
||
|
done
|
||
|
|
||
|
end_time=`eval date +%s`
|
||
|
duration=`expr $end_time - $start_time`
|
||
|
hour=`expr $duration / 3600`
|
||
|
min=`expr $(( $duration - $hour * 3600 )) / 60`
|
||
|
sec=`expr $duration - $hour \* 3600 - $min \* 60`
|
||
|
echo "Duration: $hour hr $min min $sec sec" >> $logfile
|
||
|
|
||
|
# Cleanup
|
||
|
cd
|
||
|
rm -rf /tmp/gazebo_build
|