Index: buildbot/buildbot_pnacl2.sh |
=================================================================== |
--- buildbot/buildbot_pnacl2.sh (revision 6231) |
+++ buildbot/buildbot_pnacl2.sh (working copy) |
@@ -1,262 +0,0 @@ |
-#!/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 xtrace |
-set -o nounset |
-set -o errexit |
- |
-###################################################################### |
-# SCRIPT CONFIG |
-###################################################################### |
- |
-CLOBBER=${CLOBBER:-yes} |
-SCONS_TRUSTED="./scons --mode=opt-host -j8" |
-SCONS_NACL="./scons --mode=opt-host,nacl -j8" |
-SPEC_HARNESS=${SPEC_HARNESS:-${HOME}/cpu2000-redhat64-ia32}/ |
-UTMAN=tools/llvm/utman.sh |
- |
-# Rough test running time classification for ARM which is our bottleneck |
-FAST_ARM="176.gcc 181.mcf 197.parser 254.gap" |
-MEDIUM_ARM="164.gzip 175.vpr 179.art 186.crafty 252.eon \ |
- 256.bzip2 255.vortex 300.twolf" |
-SLOW_ARM="177.mesa 183.equake 188.ammp 253.perlbmk" |
- |
-SPEC_BASE="tests/spec2k" |
- |
-TestsToBuild() { |
- local setup=$1 |
- case ${setup} in |
- SetupPnaclArmOpt) |
- # we expect arm to diverge |
- echo ${FAST_ARM} 252.eon 179.art |
- ;; |
- SetupPnaclTranslator*) |
- echo 176.gcc |
- ;; |
- *) |
- echo ${FAST_ARM} 252.eon 179.art |
- ;; |
- esac |
-} |
- |
-TestsToRun() { |
- local setup=$1 |
- case ${setup} in |
- SetupPnaclArmOpt) |
- # we expect arm to diverge |
- echo ${FAST_ARM} 252.eon 179.art |
- ;; |
- SetupPnaclTranslator*) |
- echo 176.gcc |
- ;; |
- *) |
- echo ${FAST_ARM} 252.eon 179.art |
- ;; |
- esac |
-} |
- |
-###################################################################### |
-# SCRIPT ACTION |
-###################################################################### |
- |
-clobber() { |
- echo "@@@BUILD_STEP clobber@@@" |
- rm -rf scons-out toolchain |
- |
- echo "@@@BUILD_STEP gclient_runhooks@@@" |
- gclient runhooks --force |
-} |
- |
-basic-setup-nacl() { |
- local platforms=$1 |
- build-sel_ldr "${platforms}" |
- build-libs "${platforms}" |
-} |
- |
-basic-setup-pnacl() { |
- local platforms=$1 |
- build-sel_ldr "${platforms}" |
- build-sel_universal "${platforms}" |
- ${UTMAN} sdk |
-} |
- |
-build-sel_ldr() { |
- local platforms=$1 |
- for platform in ${platforms} ; do |
- echo "@@@BUILD_STEP scons sel_ldr [${platform}]@@@" |
- ${SCONS_TRUSTED} platform=${platform} sel_ldr |
- done |
-} |
- |
-build-sel_universal() { |
- local platforms=$1 |
- for platform in ${platforms} ; do |
- echo "@@@BUILD_STEP scons sel_universal [${platform}]@@@" |
- ${SCONS_TRUSTED} platform=${platform} sel_universal |
- done |
-} |
- |
-build-libs() { |
- local platforms=$1 |
- shift 1 |
- for platform in ${platforms} ; do |
- echo "@@@BUILD_STEP scons build_lib [${platform}] $* @@@" |
- ${SCONS_NACL} platform=${platform} build_lib "$@" |
- done |
-} |
- |
-build-and-run-some() { |
- local harness=$1 |
- local setups=$2 |
- |
- pushd ${SPEC_BASE} |
- for setup in ${setups}; do |
- echo "@@@BUILD_STEP spec2k build [${setup}] [train-some]@@@" |
- ./run_all.sh CleanBenchmarks |
- ./run_all.sh PopulateFromSpecHarness ${harness} |
- MAKEOPTS=-j8 \ |
- ./run_all.sh BuildBenchmarks 0 ${setup} $(TestsToBuild ${setup}) |
- |
- echo "@@@BUILD_STEP spec2k run [${setup}] [train-some]@@@" |
- ./run_all.sh RunBenchmarks ${setup} train $(TestsToRun ${setup}) || \ |
- { RETCODE=$? && echo "@@@STEP_FAILURE@@@"; } |
- done |
- popd |
-} |
- |
-build-and-run-all-timed() { |
- local harness=$1 |
- local setups=$2 |
- |
- pushd ${SPEC_BASE} |
- for setup in ${setups}; do |
- echo "@@@BUILD_STEP spec2k build [${setup}] [train]@@@" |
- ./run_all.sh CleanBenchmarks |
- ./run_all.sh PopulateFromSpecHarness ${harness} |
- MAKEOPTS=-j8 \ |
- ./run_all.sh BuildBenchmarks 1 ${setup} train |
- |
- echo @@@BUILD_STEP spec2k run [${setup}] [train]@@@ |
- # NOTE: we intentionally do not parallelize the build because |
- # we are measuring build times |
- ./run_all.sh RunTimedBenchmarks ${setup} train || \ |
- { RETCODE=$? && echo "@@@STEP_FAILURE@@@"; } |
- done |
- popd |
-} |
- |
- |
-###################################################################### |
-# NOTE: trybots only runs a subset of the the spec2k tests |
-# TODO: elminate this long running bot in favor per arch sharded bots |
-mode-spec-pnacl-trybot() { |
- clobber |
- basic-setup-pnacl "arm x86-64 x86-32" |
- build-and-run-some ${SPEC_HARNESS} "SetupPnaclArmOpt \ |
- SetupPnaclX8632Opt \ |
- SetupPnaclX8664Opt \ |
- SetupPnaclTranslatorX8632Opt \ |
- SetupPnaclTranslatorX8664Opt" |
-} |
- |
-mode-spec-pnacl-trybot-arm() { |
- clobber |
- basic-setup-pnacl "arm" |
- build-and-run-some ${SPEC_HARNESS} "SetupPnaclArmOpt" |
-} |
- |
-mode-spec-pnacl-trybot-x8632() { |
- clobber |
- basic-setup-pnacl "x86-32" |
- build-and-run-some ${SPEC_HARNESS} "SetupPnaclX8632Opt \ |
- SetupPnaclTranslatorX8632Opt" |
-} |
- |
-mode-spec-pnacl-trybot-x8664() { |
- clobber |
- basic-setup-pnacl "x86-64" |
- build-and-run-some ${SPEC_HARNESS} "SetupPnaclX8664Opt \ |
- SetupPnaclTranslatorX8664Opt" |
-} |
- |
- |
-mode-spec-pnacl-arm() { |
- clobber |
- basic-setup-pnacl "arm" |
- # arm takes a long time and we do not have sandboxed tests working |
- build-and-run-all-timed ${SPEC_HARNESS} "SetupPnaclArmOpt" |
-} |
- |
-mode-spec-pnacl-x8664() { |
- clobber |
- basic-setup-pnacl "x86-64" |
- build-and-run-all-timed ${SPEC_HARNESS} \ |
- "SetupPnaclX8664 \ |
- SetupPnaclX8664Opt \ |
- SetupPnaclTranslatorX8664 \ |
- SetupPnaclTranslatorX8664Opt" |
-} |
- |
-mode-spec-pnacl-x8632() { |
- clobber |
- basic-setup-pnacl "x86-32" |
- build-and-run-all-timed ${SPEC_HARNESS} \ |
- "SetupPnaclX8632 \ |
- SetupPnaclX8632Opt \ |
- SetupPnaclTranslatorX8632 \ |
- SetupPnaclTranslatorX8632Opt" |
-} |
- |
-# scheduled to be obsolete |
-# TODO(robertm): delete this target |
-mode-spec-nacl() { |
- clobber |
- basic-setup-nacl "x86-32 x86-64" |
- build-and-run-all-timed ${SPEC_HARNESS} \ |
- "SetupNaclX8664 \ |
- SetupNaclX8664Opt \ |
- SetupNaclX8632 \ |
- SetupNaclX8632Opt" |
-} |
- |
-mode-spec-nacl-x8632() { |
- clobber |
- basic-setup-nacl "x86-32" |
- build-and-run-all-timed ${SPEC_HARNESS} \ |
- "SetupNaclX8632 \ |
- SetupNaclX8632Opt" |
-} |
- |
-mode-spec-nacl-x8664() { |
- clobber |
- basic-setup-nacl "x86-64" |
- build-and-run-all-timed ${SPEC_HARNESS} \ |
- "SetupNaclX8664 \ |
- SetupNaclX8664Opt" |
- |
-} |
- |
- |
-###################################################################### |
-# Script assumed to be run in native_client/ |
-if [[ $(pwd) != */native_client ]]; then |
- echo "ERROR: must be run in native_client!" |
- exit 1 |
-fi |
- |
- |
-if [[ $# -eq 0 ]] ; then |
- echo "you must specify a mode on the commandline:" |
- exit 1 |
-fi |
- |
-if [ "$(type -t $1)" != "function" ]; then |
- Usage |
- echo "ERROR: unknown mode '$1'." >&2 |
- exit 1 |
-fi |
- |
-eval "$@" |
- |