Patchwork [3/4] scripts/contrib/build-perf-test.sh: add option to allow cherry-picking of fix revisions

login
register
mail settings
Submitter Stanacar, StefanX
Date March 29, 2013, 3:10 p.m.
Message ID <cafb2912d821531777504ed69e15d36da795fa4f.1364568244.git.stefanx.stanacar@intel.com>
Download mbox | patch
Permalink /patch/47137/
State Accepted
Commit 16ea0d406a31e08071ce7d475221f0b158165405
Headers show

Comments

Stanacar, StefanX - March 29, 2013, 3:10 p.m.
From: Richard Purdie <richard@linuxfoundation.org>

Adds a -p option to allow cherry-picking of fix revisions.
Removes the final build/sstate directories to stop running out of space.
Runs subsequent tasks even if one test fails.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
---
 scripts/contrib/build-perf-test.sh | 84 ++++++++++++++++++++++----------------
 1 file changed, 49 insertions(+), 35 deletions(-)

Patch

diff --git a/scripts/contrib/build-perf-test.sh b/scripts/contrib/build-perf-test.sh
index 0f7a3a9..103475d 100755
--- a/scripts/contrib/build-perf-test.sh
+++ b/scripts/contrib/build-perf-test.sh
@@ -36,23 +36,25 @@  cat << EOT
 Usage: $ME [-h]
        $ME [-c <commit>] [-v] [-m <val>] [-j <val>] [-t <val>] [-i <image-name>] [-d <path>]
 Options:
-	-h
-		Display this help and exit.
-	-c <commit>
-		git checkout <commit> before anything else
-	-v
-		Show bitbake output, don't redirect it to a log.
-	-m <machine>
-		Value for MACHINE. Default is qemux86.
-	-j <val>
-		Value for PARALLEL_MAKE. Default is 8. 
-	-t <val>
-		Value for BB_NUMBER_THREADS. Default is 8.
+        -h
+                Display this help and exit.
+        -c <commit>
+                git checkout <commit> before anything else
+        -v
+                Show bitbake output, don't redirect it to a log.
+        -m <machine>
+                Value for MACHINE. Default is qemux86.
+        -j <val>
+                Value for PARALLEL_MAKE. Default is 8. 
+        -t <val>
+                Value for BB_NUMBER_THREADS. Default is 8.
         -i <image-name>
                 Instead of timing agains core-image-sato, use <image-name>
         -d <path>
                 Use <path> as DL_DIR
-		
+        -p <githash>
+                Cherry pick githash onto the commit
+                
 Note: current working directory must be inside a poky git clone.
  
 EOT
@@ -71,29 +73,32 @@  verbose=0
 dldir=
 commit=
 pmake=
-while getopts "hvc:m:j:t:i:d:" opt; do
-	case $opt in
-		h)	usage
-			exit 0
-			;;
-		v)	verbose=1
-			;;
-		c)	commit=$OPTARG
-			;;
-		m)      export MACHINE=$OPTARG
-			;;
-		j)	pmake=$OPTARG
-			;;
-		t)	export BB_NUMBER_THREADS=$OPTARG
-			;;
+cherrypicks=
+while getopts "hvc:m:j:t:i:d:p:" opt; do
+        case $opt in
+                h)      usage
+                        exit 0
+                        ;;
+                v)      verbose=1
+                        ;;
+                c)      commit=$OPTARG
+                        ;;
+                m)      export MACHINE=$OPTARG
+                        ;;
+                j)      pmake=$OPTARG
+                        ;;
+                t)      export BB_NUMBER_THREADS=$OPTARG
+                        ;;
                 i)      IMAGE=$OPTARG
                         ;;
                 d)      dldir=$OPTARG
                         ;;
-		*)	usage
-			exit 1
-			;;			
-	esac
+                p)      cherrypicks="$cherrypicks $OPTARG"
+                        ;;
+                *)      usage
+                        exit 1
+                        ;;                      
+        esac
 done
 
 
@@ -113,6 +118,12 @@  if [ -n "$commit" ]; then
             git pull > /dev/null 2>&1
 fi
 
+if [ -n "$cherrypicks" ]; then
+    for c in $cherrypicks; do
+        git cherry-pick $c
+    done
+fi
+
 rev=$(git rev-parse --short HEAD)  || exit 1
 OUTDIR="$clonedir/build-perf-test/results-$rev-`date "+%Y%m%d%H%M%S"`"
 BUILDDIR="$OUTDIR/build"
@@ -176,7 +187,7 @@  bbtime () {
         TIMES[(( time_count++ ))]="$t"
     else
         log "Exit status was non-zero. Exit..."
-        exit $ret 
+        #exit $ret 
     fi
     
     #time by default overwrites the output file and we  want to keep the results
@@ -269,8 +280,8 @@  bbtime "virtual/kernel"
 test1_p3 () {
 log "Running Test 1, part 3/3: Build $IMAGE w/o sstate and report size of tmp/dir with rm_work enabled"
 echo "INHERIT += \"rm_work\"" >> conf/local.conf
-do_rmtmp
-do_rmsstate
+#do_rmtmp
+#do_rmsstate
 do_sync
 bbtime "$IMAGE"
 sed -i 's/INHERIT += \"rm_work\"//' conf/local.conf
@@ -303,6 +314,9 @@  test2
 
 log "All done"
 
+do_rmtmp
+do_rmsstate
+
 # if we got til here write to global results
 echo "$rev" >> $globalres
 for i in "${TIMES[@]}"; do