Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: buildbot/buildbot_pnacl2.sh

Issue 7524023: New LLVM merging bots (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | buildbot/buildbot_pnacl_merge.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/bin/bash
2 # Copyright (c) 2011 The Native Client Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 set -o xtrace
7 set -o nounset
8 set -o errexit
9
10 ######################################################################
11 # SCRIPT CONFIG
12 ######################################################################
13
14 CLOBBER=${CLOBBER:-yes}
15 SCONS_TRUSTED="./scons --mode=opt-host -j8"
16 SCONS_NACL="./scons --mode=opt-host,nacl -j8"
17 SPEC_HARNESS=${SPEC_HARNESS:-${HOME}/cpu2000-redhat64-ia32}/
18 UTMAN=tools/llvm/utman.sh
19
20 # Rough test running time classification for ARM which is our bottleneck
21 FAST_ARM="176.gcc 181.mcf 197.parser 254.gap"
22 MEDIUM_ARM="164.gzip 175.vpr 179.art 186.crafty 252.eon \
23 256.bzip2 255.vortex 300.twolf"
24 SLOW_ARM="177.mesa 183.equake 188.ammp 253.perlbmk"
25
26 SPEC_BASE="tests/spec2k"
27
28 TestsToBuild() {
29 local setup=$1
30 case ${setup} in
31 SetupPnaclArmOpt)
32 # we expect arm to diverge
33 echo ${FAST_ARM} 252.eon 179.art
34 ;;
35 SetupPnaclTranslator*)
36 echo 176.gcc
37 ;;
38 *)
39 echo ${FAST_ARM} 252.eon 179.art
40 ;;
41 esac
42 }
43
44 TestsToRun() {
45 local setup=$1
46 case ${setup} in
47 SetupPnaclArmOpt)
48 # we expect arm to diverge
49 echo ${FAST_ARM} 252.eon 179.art
50 ;;
51 SetupPnaclTranslator*)
52 echo 176.gcc
53 ;;
54 *)
55 echo ${FAST_ARM} 252.eon 179.art
56 ;;
57 esac
58 }
59
60 ######################################################################
61 # SCRIPT ACTION
62 ######################################################################
63
64 clobber() {
65 echo "@@@BUILD_STEP clobber@@@"
66 rm -rf scons-out toolchain
67
68 echo "@@@BUILD_STEP gclient_runhooks@@@"
69 gclient runhooks --force
70 }
71
72 basic-setup-nacl() {
73 local platforms=$1
74 build-sel_ldr "${platforms}"
75 build-libs "${platforms}"
76 }
77
78 basic-setup-pnacl() {
79 local platforms=$1
80 build-sel_ldr "${platforms}"
81 build-sel_universal "${platforms}"
82 ${UTMAN} sdk
83 }
84
85 build-sel_ldr() {
86 local platforms=$1
87 for platform in ${platforms} ; do
88 echo "@@@BUILD_STEP scons sel_ldr [${platform}]@@@"
89 ${SCONS_TRUSTED} platform=${platform} sel_ldr
90 done
91 }
92
93 build-sel_universal() {
94 local platforms=$1
95 for platform in ${platforms} ; do
96 echo "@@@BUILD_STEP scons sel_universal [${platform}]@@@"
97 ${SCONS_TRUSTED} platform=${platform} sel_universal
98 done
99 }
100
101 build-libs() {
102 local platforms=$1
103 shift 1
104 for platform in ${platforms} ; do
105 echo "@@@BUILD_STEP scons build_lib [${platform}] $* @@@"
106 ${SCONS_NACL} platform=${platform} build_lib "$@"
107 done
108 }
109
110 build-and-run-some() {
111 local harness=$1
112 local setups=$2
113
114 pushd ${SPEC_BASE}
115 for setup in ${setups}; do
116 echo "@@@BUILD_STEP spec2k build [${setup}] [train-some]@@@"
117 ./run_all.sh CleanBenchmarks
118 ./run_all.sh PopulateFromSpecHarness ${harness}
119 MAKEOPTS=-j8 \
120 ./run_all.sh BuildBenchmarks 0 ${setup} $(TestsToBuild ${setup})
121
122 echo "@@@BUILD_STEP spec2k run [${setup}] [train-some]@@@"
123 ./run_all.sh RunBenchmarks ${setup} train $(TestsToRun ${setup}) || \
124 { RETCODE=$? && echo "@@@STEP_FAILURE@@@"; }
125 done
126 popd
127 }
128
129 build-and-run-all-timed() {
130 local harness=$1
131 local setups=$2
132
133 pushd ${SPEC_BASE}
134 for setup in ${setups}; do
135 echo "@@@BUILD_STEP spec2k build [${setup}] [train]@@@"
136 ./run_all.sh CleanBenchmarks
137 ./run_all.sh PopulateFromSpecHarness ${harness}
138 MAKEOPTS=-j8 \
139 ./run_all.sh BuildBenchmarks 1 ${setup} train
140
141 echo @@@BUILD_STEP spec2k run [${setup}] [train]@@@
142 # NOTE: we intentionally do not parallelize the build because
143 # we are measuring build times
144 ./run_all.sh RunTimedBenchmarks ${setup} train || \
145 { RETCODE=$? && echo "@@@STEP_FAILURE@@@"; }
146 done
147 popd
148 }
149
150
151 ######################################################################
152 # NOTE: trybots only runs a subset of the the spec2k tests
153 # TODO: elminate this long running bot in favor per arch sharded bots
154 mode-spec-pnacl-trybot() {
155 clobber
156 basic-setup-pnacl "arm x86-64 x86-32"
157 build-and-run-some ${SPEC_HARNESS} "SetupPnaclArmOpt \
158 SetupPnaclX8632Opt \
159 SetupPnaclX8664Opt \
160 SetupPnaclTranslatorX8632Opt \
161 SetupPnaclTranslatorX8664Opt"
162 }
163
164 mode-spec-pnacl-trybot-arm() {
165 clobber
166 basic-setup-pnacl "arm"
167 build-and-run-some ${SPEC_HARNESS} "SetupPnaclArmOpt"
168 }
169
170 mode-spec-pnacl-trybot-x8632() {
171 clobber
172 basic-setup-pnacl "x86-32"
173 build-and-run-some ${SPEC_HARNESS} "SetupPnaclX8632Opt \
174 SetupPnaclTranslatorX8632Opt"
175 }
176
177 mode-spec-pnacl-trybot-x8664() {
178 clobber
179 basic-setup-pnacl "x86-64"
180 build-and-run-some ${SPEC_HARNESS} "SetupPnaclX8664Opt \
181 SetupPnaclTranslatorX8664Opt"
182 }
183
184
185 mode-spec-pnacl-arm() {
186 clobber
187 basic-setup-pnacl "arm"
188 # arm takes a long time and we do not have sandboxed tests working
189 build-and-run-all-timed ${SPEC_HARNESS} "SetupPnaclArmOpt"
190 }
191
192 mode-spec-pnacl-x8664() {
193 clobber
194 basic-setup-pnacl "x86-64"
195 build-and-run-all-timed ${SPEC_HARNESS} \
196 "SetupPnaclX8664 \
197 SetupPnaclX8664Opt \
198 SetupPnaclTranslatorX8664 \
199 SetupPnaclTranslatorX8664Opt"
200 }
201
202 mode-spec-pnacl-x8632() {
203 clobber
204 basic-setup-pnacl "x86-32"
205 build-and-run-all-timed ${SPEC_HARNESS} \
206 "SetupPnaclX8632 \
207 SetupPnaclX8632Opt \
208 SetupPnaclTranslatorX8632 \
209 SetupPnaclTranslatorX8632Opt"
210 }
211
212 # scheduled to be obsolete
213 # TODO(robertm): delete this target
214 mode-spec-nacl() {
215 clobber
216 basic-setup-nacl "x86-32 x86-64"
217 build-and-run-all-timed ${SPEC_HARNESS} \
218 "SetupNaclX8664 \
219 SetupNaclX8664Opt \
220 SetupNaclX8632 \
221 SetupNaclX8632Opt"
222 }
223
224 mode-spec-nacl-x8632() {
225 clobber
226 basic-setup-nacl "x86-32"
227 build-and-run-all-timed ${SPEC_HARNESS} \
228 "SetupNaclX8632 \
229 SetupNaclX8632Opt"
230 }
231
232 mode-spec-nacl-x8664() {
233 clobber
234 basic-setup-nacl "x86-64"
235 build-and-run-all-timed ${SPEC_HARNESS} \
236 "SetupNaclX8664 \
237 SetupNaclX8664Opt"
238
239 }
240
241
242 ######################################################################
243 # Script assumed to be run in native_client/
244 if [[ $(pwd) != */native_client ]]; then
245 echo "ERROR: must be run in native_client!"
246 exit 1
247 fi
248
249
250 if [[ $# -eq 0 ]] ; then
251 echo "you must specify a mode on the commandline:"
252 exit 1
253 fi
254
255 if [ "$(type -t $1)" != "function" ]; then
256 Usage
257 echo "ERROR: unknown mode '$1'." >&2
258 exit 1
259 fi
260
261 eval "$@"
262
OLDNEW
« no previous file with comments | « no previous file | buildbot/buildbot_pnacl_merge.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698