#!/bin/bash # Copyright (c) 2011 The Native Client Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. set -o nounset set -o errexit #@ LogRealTime #@ Take wall time data from , and log it for the Chrome perf bots. #@ should be a single line where column 1 and 2 are user/sys. LogRealTime() { local time_file=$1 local graph_label=$2 local bench=$3 local setup=$4 # Generate a list of times "[x,y,z]". The chromium perf log parser # will know to average this list of times. local times="[$(awk '{print $3}' ${time_file} | \ tr '\n' ',' | sed 's/,$//')]" LogPerf ${graph_label} ${bench} ${setup} "${times}" "seconds" } #@ LogGzippedSize #@ Measure and log size of gzipped executable/bc files/etc. LogGzippedSize() { local file_to_zip=$1 local graph_label=$2 local bench=$3 local setup=$4 local tempsize=`gzip ${file_to_zip} -c | wc -c` LogPerf ${graph_label} ${bench} ${setup} ${tempsize} "bytes" } #@ Emit a chrome perf log datapoint #@ $1 :: graph_type #@ $2 :: bench_name #@ $3 :: compiler setup #@ $4 :: measurement value #@ $5 :: unit LogPerf() { echo "RESULT $1_$2: $3= $4 $5" } ###################################################################### # Main ###################################################################### # Print the usage message to stdout. Usage() { egrep "^#@" $0 | cut --bytes=3- } [ $# = 0 ] && set -- help # Avoid reference to undefined $1. if [ "$(type -t $1)" != "function" ]; then Usage echo "ERROR: unknown mode '$1'." >&2 exit 1 fi eval "$@"