diff options
Diffstat (limited to 'scripts/contrib/build-perf-test.sh')
-rwxr-xr-x | scripts/contrib/build-perf-test.sh | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/scripts/contrib/build-perf-test.sh b/scripts/contrib/build-perf-test.sh index 2d70cfae52..0f7a3a9ae5 100755 --- a/scripts/contrib/build-perf-test.sh +++ b/scripts/contrib/build-perf-test.sh | |||
@@ -108,8 +108,9 @@ fi | |||
108 | 108 | ||
109 | if [ -n "$commit" ]; then | 109 | if [ -n "$commit" ]; then |
110 | echo "git checkout $commit" | 110 | echo "git checkout $commit" |
111 | git pull > /dev/null 2>&1 | ||
111 | git checkout $commit || exit 1 | 112 | git checkout $commit || exit 1 |
112 | git pull || exit 1 | 113 | git pull > /dev/null 2>&1 |
113 | fi | 114 | fi |
114 | 115 | ||
115 | rev=$(git rev-parse --short HEAD) || exit 1 | 116 | rev=$(git rev-parse --short HEAD) || exit 1 |
@@ -118,6 +119,7 @@ BUILDDIR="$OUTDIR/build" | |||
118 | resultsfile="$OUTDIR/results.log" | 119 | resultsfile="$OUTDIR/results.log" |
119 | bboutput="$OUTDIR/bitbake.log" | 120 | bboutput="$OUTDIR/bitbake.log" |
120 | myoutput="$OUTDIR/output.log" | 121 | myoutput="$OUTDIR/output.log" |
122 | globalres="$clonedir/build-perf-test/globalres.log" | ||
121 | 123 | ||
122 | mkdir -p $OUTDIR || exit 1 | 124 | mkdir -p $OUTDIR || exit 1 |
123 | 125 | ||
@@ -131,9 +133,10 @@ log () { | |||
131 | # Config stuff | 133 | # Config stuff |
132 | # | 134 | # |
133 | 135 | ||
136 | rev=$(git rev-parse HEAD) || exit 1 | ||
134 | log "Git revision is $rev" | 137 | log "Git revision is $rev" |
135 | 138 | ||
136 | source ./oe-init-build-env $OUTDIR/build >/dev/null | 139 | source ./oe-init-build-env $OUTDIR/build >/dev/null || exit 1 |
137 | cd $OUTDIR/build | 140 | cd $OUTDIR/build |
138 | 141 | ||
139 | [ -n "$MACHINE" ] || export MACHINE="qemux86" | 142 | [ -n "$MACHINE" ] || export MACHINE="qemux86" |
@@ -155,8 +158,12 @@ fi | |||
155 | # Functions | 158 | # Functions |
156 | # | 159 | # |
157 | 160 | ||
161 | declare -a TIMES | ||
162 | time_count=0 | ||
163 | |||
158 | bbtime () { | 164 | bbtime () { |
159 | log "Running and timing bitbake $1" | 165 | log "Timing: bitbake $1" |
166 | |||
160 | if [ $verbose -eq 0 ]; then | 167 | if [ $verbose -eq 0 ]; then |
161 | /usr/bin/time -v -o $resultsfile bitbake "$1" >> $bboutput | 168 | /usr/bin/time -v -o $resultsfile bitbake "$1" >> $bboutput |
162 | else | 169 | else |
@@ -164,13 +171,14 @@ bbtime () { | |||
164 | fi | 171 | fi |
165 | ret=$? | 172 | ret=$? |
166 | if [ $ret -eq 0 ]; then | 173 | if [ $ret -eq 0 ]; then |
167 | log "Finished bitbake $1" | 174 | t=`grep wall $resultsfile | sed 's/.*m:ss): //'` |
175 | log "Time: $t" | ||
176 | TIMES[(( time_count++ ))]="$t" | ||
168 | else | 177 | else |
169 | log "Exit status was non-zero. Exit..." | 178 | log "Exit status was non-zero. Exit..." |
170 | exit $ret | 179 | exit $ret |
171 | fi | 180 | fi |
172 | 181 | ||
173 | log "Time: `grep wall $resultsfile`" | ||
174 | #time by default overwrites the output file and we want to keep the results | 182 | #time by default overwrites the output file and we want to keep the results |
175 | #it has an append option but I don't want to clobber the results in the same file | 183 | #it has an append option but I don't want to clobber the results in the same file |
176 | i=`ls $OUTDIR/results.log* |wc -l` | 184 | i=`ls $OUTDIR/results.log* |wc -l` |
@@ -180,7 +188,7 @@ bbtime () { | |||
180 | 188 | ||
181 | #we don't time bitbake here | 189 | #we don't time bitbake here |
182 | bbnotime () { | 190 | bbnotime () { |
183 | log "Running bitbake $1" | 191 | log "Running: bitbake $1" |
184 | if [ $verbose -eq 0 ]; then | 192 | if [ $verbose -eq 0 ]; then |
185 | bitbake "$1" >> $bboutput | 193 | bitbake "$1" >> $bboutput |
186 | else | 194 | else |
@@ -198,7 +206,7 @@ bbnotime () { | |||
198 | 206 | ||
199 | do_rmtmp() { | 207 | do_rmtmp() { |
200 | log "Removing tmp" | 208 | log "Removing tmp" |
201 | rm -rf bitbake.lock pseudone tmp conf/sanity_info | 209 | rm -rf bitbake.lock pseudodone tmp conf/sanity_info |
202 | } | 210 | } |
203 | do_rmsstate () { | 211 | do_rmsstate () { |
204 | log "Removing sstate-cache" | 212 | log "Removing sstate-cache" |
@@ -244,7 +252,7 @@ do_rmtmp | |||
244 | do_rmsstate | 252 | do_rmsstate |
245 | do_sync | 253 | do_sync |
246 | bbtime "$IMAGE" | 254 | bbtime "$IMAGE" |
247 | log "Size of tmp dir is: `du -hc tmp | grep total`" | 255 | log "Size of tmp dir is: `du -sh tmp | sed 's/tmp//'`" |
248 | log "Buildstats are saved in $OUTDIR/buildstats-test1" | 256 | log "Buildstats are saved in $OUTDIR/buildstats-test1" |
249 | mv tmp/buildstats $OUTDIR/buildstats-test1 | 257 | mv tmp/buildstats $OUTDIR/buildstats-test1 |
250 | } | 258 | } |
@@ -265,8 +273,10 @@ do_rmtmp | |||
265 | do_rmsstate | 273 | do_rmsstate |
266 | do_sync | 274 | do_sync |
267 | bbtime "$IMAGE" | 275 | bbtime "$IMAGE" |
268 | log "Size of tmp dir is: `du -hc tmp | grep total`" | ||
269 | sed -i 's/INHERIT += \"rm_work\"//' conf/local.conf | 276 | sed -i 's/INHERIT += \"rm_work\"//' conf/local.conf |
277 | log "Size of tmp dir is: `du -sh tmp | sed 's/tmp//'`" | ||
278 | log "Buildstats are saved in $OUTDIR/buildstats-test13" | ||
279 | mv tmp/buildstats $OUTDIR/buildstats-test13 | ||
270 | } | 280 | } |
271 | 281 | ||
272 | 282 | ||
@@ -291,11 +301,12 @@ test1_p2 | |||
291 | test1_p3 | 301 | test1_p3 |
292 | test2 | 302 | test2 |
293 | 303 | ||
294 | log "All done." | 304 | log "All done" |
295 | |||
296 | |||
297 | |||
298 | |||
299 | |||
300 | |||
301 | 305 | ||
306 | # if we got til here write to global results | ||
307 | echo "$rev" >> $globalres | ||
308 | for i in "${TIMES[@]}"; do | ||
309 | echo -n "$i," >> $globalres | ||
310 | done | ||
311 | echo >> $globalres | ||
312 | sed -i '$ s/,$//' $globalres | ||