diff -r 820b22e13ff1 -r 39c28ec933dd sbsv2/raptor/bin/speedtest_osbuild.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv2/raptor/bin/speedtest_osbuild.sh Mon May 10 19:54:49 2010 +0100 @@ -0,0 +1,166 @@ +#!/bin/sh + +# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of the License "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# Build automation for Symbian OS with Raptor +# Author: Timothy N Murphy +# +# + +# You can edit these: +H=/home/tmurphy +export H +export EPOCROOT="$H/baselineos" +export LOGBASEDIR=~/public_html/buildlogs +export BUILDROOT="$H/baselineos" +export SOURCEROOT="$H/baselineos/fsupdate" +export SYSDEF="$H/baselineos/system_definition_fsupdate.xml" +export PREEXPORTSYSDEF="$SBS_HOME/test/envelope/preexport.xml" +#export PARALLEL=0 + +genstats() { +if [ "$1.stats" -ot "$1.log" ]; then +python "$SBS_HOME/bin/buildstats.py" "$1.log" > "$1.stats" && +#python "$SBS_HOME/bin/failedstats.py" -m "$1.log" > "$1.failed"; +( + cd $EPOCROOT/epoc32 && find "release" > "$1.release_files" && find "build" > "$1.build_files" && find include > "$1.include_files" +) +fi; +} + +cd $BUILDROOT + + +# Don't edit the rest: +################################################### +export KEY=`date +%d_%m_%y` +export DAILYDIR="$LOGBASEDIR/$KEY" +export BUILDNAME="`basename \"$SYSDEF\" | sed 's#\.[^.][^.]*$##'`" +export LOGNAME="${BUILDNAME}_${KEY}" +export PLATFORM=armv5 +export TESTLOG="$DAILYDIR/parallel_speedtest.log" + +for BUILDNUM in {1..50}; do + if [ ! -d "$DAILYDIR/$BUILDNUM" ]; then + break + fi + if [ ! -f "$DAILYDIR/$BUILDNUM/${LOGNAME}_$BUILDNUM.log" ]; then + break + fi +done + +# make the day's directory +mkdir -p "$DAILYDIR" + +echo "testrun: $TESTLOG, build $BUILDNUM of the day:" +echo '' > "$TESTLOG" + + +# Loop through different cluster loads +#for PARALLEL in 52 48 44 40 36 32 28 24 20 16 8 4; do +for PARALLEL in 44 40 36 32 28 24 20 16 8 4; do +export PARALLEL i +echo "Parallel: $PARALLEL" +( +echo "" +echo " " +echo " $DAILYDIR/$BUILDNUM/${LOGNAME}_$BUILDNUM.log" +MAKEFILE=$TESTBASE/test$CODEFACTOR.mk +echo "" + +OUTDIR="$DAILYDIR/$BUILDNUM" +TIMELOG="$OUTDIR/${LOGNAME}_$BUILDNUM.time" + +echo " "$OUTDIR/unzip" && +chmod -R u+rw "$EPOCROOT/epoc32" && +echo "unzipped skeleton epoc32 tree" +) && ( +echo "Pre-export" +$SBS_HOME/bin/sbs -d -k -s "$PREEXPORTSYSDEF" -a "$SOURCEROOT" -c $PLATFORM EXPORT > $OUTDIR/${LOGNAME}_$BUILDNUM.preexport 2>&1 || { + echo "Pre-export failed"; + exit 1 +} +) + +echo "Prepping makefiles" +( + echo "\n" + export TIMEFORMAT=$'\n' + time cp performance_Makefile $EPOCROOT/epoc32/build/Makefile +) > "$TIMELOG" 2>&1 + +echo "Running Make" +( + # The build process + export TIMEFORMAT=$'\n' + + time /usr/local/raptor/make-pvm-381/pvmgmake -j$PARALLEL --debug=j -k -f $MAKEFILE > "$OUTDIR/${LOGNAME}_$BUILDNUM.log" 2>&1 + touch "$SIGNALTOSTOPFILE" + echo "\n" +) >> "$TIMELOG" 2>&1 & +( + set +x + # Concurrent process to continuously update statistics + echo "" + + while [ 1 -eq 1 ]; do + sleep 20 + echo -n "." + + if [ -e "$SIGNALTOSTOPFILE" ]; then + rm -f "$SIGNALTOSTOPFILE" + break + fi + done + echo "" +) +set +x +genstats "$OUTDIR/${LOGNAME}_$BUILDNUM" + +echo " ]]>" +echo "" +) >> "$TESTLOG" 2>&1 + +BUILDNUM=$[ $BUILDNUM + 1 ] +# use a new output directory +done # PARALLEL +echo -e "" >> "$TESTLOG" +echo "" >> "$TESTLOG"