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

Side by Side Diff: scripts/slave/recipe_modules/amp/example.expected/multiple_devices_basic.json

Issue 1917243002: Revert "build: roll infra_paths changes" (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@master
Patch Set: Created 4 years, 8 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
OLDNEW
1 [ 1 [
2 { 2 {
3 "cmd": [ 3 "cmd": [
4 "python", 4 "python",
5 "-u", 5 "-u",
6 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py", 6 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py",
7 "--", 7 "--",
8 "[ROOT]/b/depot_tools/gsutil.py", 8 "[DEPOT_TOOLS]/gsutil.py",
9 "----", 9 "----",
10 "cp", 10 "cp",
11 "gs://chrome-amp-keys/main_pool/api_key", 11 "gs://chrome-amp-keys/main_pool/api_key",
12 "[ROOT]/b/build/site_config/.amp_main_pool_key" 12 "[BUILD]/site_config/.amp_main_pool_key"
13 ], 13 ],
14 "cwd": "[SLAVE_BUILD]",
14 "name": "gsutil download amp api key" 15 "name": "gsutil download amp api key"
15 }, 16 },
16 { 17 {
17 "cmd": [ 18 "cmd": [
18 "python", 19 "python",
19 "-u", 20 "-u",
20 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py", 21 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py",
21 "--", 22 "--",
22 "[ROOT]/b/depot_tools/gsutil.py", 23 "[DEPOT_TOOLS]/gsutil.py",
23 "----", 24 "----",
24 "cp", 25 "cp",
25 "gs://chrome-amp-keys/main_pool/api_secret", 26 "gs://chrome-amp-keys/main_pool/api_secret",
26 "[ROOT]/b/build/site_config/.amp_main_pool_secret" 27 "[BUILD]/site_config/.amp_main_pool_secret"
27 ], 28 ],
29 "cwd": "[SLAVE_BUILD]",
28 "name": "gsutil download amp api secret" 30 "name": "gsutil download amp api secret"
29 }, 31 },
30 { 32 {
31 "cmd": [ 33 "cmd": [
32 "python", 34 "python",
33 "-u", 35 "-u",
34 "[CWD]/src/build/android/test_runner.py", 36 "[SLAVE_BUILD]/src/build/android/test_runner.py",
35 "gtest", 37 "gtest",
36 "-s", 38 "-s",
37 "example_gtest_suite", 39 "example_gtest_suite",
38 "--enable-platform-mode", 40 "--enable-platform-mode",
39 "-e", 41 "-e",
40 "remote_device", 42 "remote_device",
41 "--api-key-file", 43 "--api-key-file",
42 "[ROOT]/b/build/site_config/.amp_main_pool_key", 44 "[BUILD]/site_config/.amp_main_pool_key",
43 "--api-secret-file", 45 "--api-secret-file",
44 "[ROOT]/b/build/site_config/.amp_main_pool_secret", 46 "[BUILD]/site_config/.amp_main_pool_secret",
45 "--api-address", 47 "--api-address",
46 "127.0.0.1", 48 "127.0.0.1",
47 "--api-port", 49 "--api-port",
48 "80", 50 "80",
49 "--api-protocol", 51 "--api-protocol",
50 "http", 52 "http",
51 "--device-type", 53 "--device-type",
52 "Android", 54 "Android",
53 "--remote-device", 55 "--remote-device",
54 "SampleDevice0", 56 "SampleDevice0",
55 "--remote-device", 57 "--remote-device",
56 "SampleDevice1", 58 "SampleDevice1",
57 "--remote-device-os", 59 "--remote-device-os",
58 "SampleDeviceOS", 60 "SampleDeviceOS",
59 "--trigger", 61 "--trigger",
60 "/path/to/tmp/json", 62 "/path/to/tmp/json",
61 "--verbose" 63 "--verbose"
62 ], 64 ],
65 "cwd": "[SLAVE_BUILD]",
63 "env": { 66 "env": {
64 "CHROMIUM_OUTPUT_DIR": "[CWD]/src/out/Debug" 67 "CHROMIUM_OUTPUT_DIR": "[SLAVE_BUILD]/src/out/Debug"
65 }, 68 },
66 "name": "[trigger] example_gtest_suite", 69 "name": "[trigger] example_gtest_suite",
67 "~followup_annotations": [ 70 "~followup_annotations": [
68 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@", 71 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@",
69 "@@@STEP_LOG_LINE@json.output@{@@@", 72 "@@@STEP_LOG_LINE@json.output@{@@@",
70 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 73 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
71 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 74 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
72 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 75 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
73 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 76 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
74 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 77 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
75 "@@@STEP_LOG_LINE@json.output@ }@@@", 78 "@@@STEP_LOG_LINE@json.output@ }@@@",
76 "@@@STEP_LOG_LINE@json.output@ }, @@@", 79 "@@@STEP_LOG_LINE@json.output@ }, @@@",
77 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@", 80 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@",
78 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"T35TRUN1D\"@@@", 81 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"T35TRUN1D\"@@@",
79 "@@@STEP_LOG_LINE@json.output@ }@@@", 82 "@@@STEP_LOG_LINE@json.output@ }@@@",
80 "@@@STEP_LOG_LINE@json.output@}@@@", 83 "@@@STEP_LOG_LINE@json.output@}@@@",
81 "@@@STEP_LOG_END@json.output@@@" 84 "@@@STEP_LOG_END@json.output@@@"
82 ] 85 ]
83 }, 86 },
84 { 87 {
85 "cmd": [ 88 "cmd": [
86 "python", 89 "python",
87 "-u", 90 "-u",
88 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 91 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
89 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}, \"test_run\": {\"test_run_id\": \"T35TRUN1D\"}}", 92 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}, \"test_run\": {\"test_run_id\": \"T35TRUN1D\"}}",
90 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json" 93 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json"
91 ], 94 ],
95 "cwd": "[SLAVE_BUILD]",
92 "name": "[trigger] save example_gtest_suite" 96 "name": "[trigger] save example_gtest_suite"
93 }, 97 },
94 { 98 {
95 "cmd": [ 99 "cmd": [
96 "python", 100 "python",
97 "-u", 101 "-u",
98 "[CWD]/src/build/android/test_runner.py", 102 "[SLAVE_BUILD]/src/build/android/test_runner.py",
99 "instrumentation", 103 "instrumentation",
100 "--apk-under-test", 104 "--apk-under-test",
101 "ApkUnderTest.apk", 105 "ApkUnderTest.apk",
102 "--test-apk", 106 "--test-apk",
103 "TestApk.apk", 107 "TestApk.apk",
104 "--isolate-file-path", 108 "--isolate-file-path",
105 "isolate_file.isolate", 109 "isolate_file.isolate",
106 "--annotation", 110 "--annotation",
107 "SmallTest", 111 "SmallTest",
108 "--additional-apk", 112 "--additional-apk",
109 "ExtraApk1.apk", 113 "ExtraApk1.apk",
110 "--additional-apk", 114 "--additional-apk",
111 "ExtraApk2.apk", 115 "ExtraApk2.apk",
112 "--enable-platform-mode", 116 "--enable-platform-mode",
113 "-e", 117 "-e",
114 "remote_device", 118 "remote_device",
115 "--api-key-file", 119 "--api-key-file",
116 "[ROOT]/b/build/site_config/.amp_main_pool_key", 120 "[BUILD]/site_config/.amp_main_pool_key",
117 "--api-secret-file", 121 "--api-secret-file",
118 "[ROOT]/b/build/site_config/.amp_main_pool_secret", 122 "[BUILD]/site_config/.amp_main_pool_secret",
119 "--api-address", 123 "--api-address",
120 "127.0.0.1", 124 "127.0.0.1",
121 "--api-port", 125 "--api-port",
122 "80", 126 "80",
123 "--api-protocol", 127 "--api-protocol",
124 "http", 128 "http",
125 "--device-type", 129 "--device-type",
126 "Android", 130 "Android",
127 "--remote-device", 131 "--remote-device",
128 "SampleDevice0", 132 "SampleDevice0",
129 "--remote-device", 133 "--remote-device",
130 "SampleDevice1", 134 "SampleDevice1",
131 "--remote-device-os", 135 "--remote-device-os",
132 "SampleDeviceOS", 136 "SampleDeviceOS",
133 "--trigger", 137 "--trigger",
134 "/path/to/tmp/json", 138 "/path/to/tmp/json",
135 "--verbose" 139 "--verbose"
136 ], 140 ],
141 "cwd": "[SLAVE_BUILD]",
137 "env": { 142 "env": {
138 "CHROMIUM_OUTPUT_DIR": "[CWD]/src/out/Debug" 143 "CHROMIUM_OUTPUT_DIR": "[SLAVE_BUILD]/src/out/Debug"
139 }, 144 },
140 "name": "[trigger] example_instrumentation_suite", 145 "name": "[trigger] example_instrumentation_suite",
141 "~followup_annotations": [ 146 "~followup_annotations": [
142 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@", 147 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@",
143 "@@@STEP_LOG_LINE@json.output@{@@@", 148 "@@@STEP_LOG_LINE@json.output@{@@@",
144 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 149 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
145 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 150 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
146 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 151 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
147 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 152 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
148 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 153 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
149 "@@@STEP_LOG_LINE@json.output@ }@@@", 154 "@@@STEP_LOG_LINE@json.output@ }@@@",
150 "@@@STEP_LOG_LINE@json.output@ }, @@@", 155 "@@@STEP_LOG_LINE@json.output@ }, @@@",
151 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@", 156 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@",
152 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"T35TRUN1D\"@@@", 157 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"T35TRUN1D\"@@@",
153 "@@@STEP_LOG_LINE@json.output@ }@@@", 158 "@@@STEP_LOG_LINE@json.output@ }@@@",
154 "@@@STEP_LOG_LINE@json.output@}@@@", 159 "@@@STEP_LOG_LINE@json.output@}@@@",
155 "@@@STEP_LOG_END@json.output@@@" 160 "@@@STEP_LOG_END@json.output@@@"
156 ] 161 ]
157 }, 162 },
158 { 163 {
159 "cmd": [ 164 "cmd": [
160 "python", 165 "python",
161 "-u", 166 "-u",
162 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 167 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
163 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}, \"test_run\": {\"test_run_id\": \"T35TRUN1D\"}}", 168 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}, \"test_run\": {\"test_run_id\": \"T35TRUN1D\"}}",
164 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json" 169 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json"
165 ], 170 ],
171 "cwd": "[SLAVE_BUILD]",
166 "name": "[trigger] save example_instrumentation_suite" 172 "name": "[trigger] save example_instrumentation_suite"
167 }, 173 },
168 { 174 {
169 "cmd": [ 175 "cmd": [
170 "python", 176 "python",
171 "-u", 177 "-u",
172 "[CWD]/src/build/android/test_runner.py", 178 "[SLAVE_BUILD]/src/build/android/test_runner.py",
173 "uirobot", 179 "uirobot",
174 "--minutes", 180 "--minutes",
175 "5", 181 "5",
176 "--app-under-test", 182 "--app-under-test",
177 "Example.apk", 183 "Example.apk",
178 "--enable-platform-mode", 184 "--enable-platform-mode",
179 "-e", 185 "-e",
180 "remote_device", 186 "remote_device",
181 "--api-key-file", 187 "--api-key-file",
182 "[ROOT]/b/build/site_config/.amp_main_pool_key", 188 "[BUILD]/site_config/.amp_main_pool_key",
183 "--api-secret-file", 189 "--api-secret-file",
184 "[ROOT]/b/build/site_config/.amp_main_pool_secret", 190 "[BUILD]/site_config/.amp_main_pool_secret",
185 "--api-address", 191 "--api-address",
186 "127.0.0.1", 192 "127.0.0.1",
187 "--api-port", 193 "--api-port",
188 "80", 194 "80",
189 "--api-protocol", 195 "--api-protocol",
190 "http", 196 "http",
191 "--device-type", 197 "--device-type",
192 "Android", 198 "Android",
193 "--remote-device", 199 "--remote-device",
194 "SampleDevice0", 200 "SampleDevice0",
195 "--remote-device", 201 "--remote-device",
196 "SampleDevice1", 202 "SampleDevice1",
197 "--remote-device-os", 203 "--remote-device-os",
198 "SampleDeviceOS", 204 "SampleDeviceOS",
199 "--trigger", 205 "--trigger",
200 "/path/to/tmp/json", 206 "/path/to/tmp/json",
201 "--verbose" 207 "--verbose"
202 ], 208 ],
209 "cwd": "[SLAVE_BUILD]",
203 "env": { 210 "env": {
204 "CHROMIUM_OUTPUT_DIR": "[CWD]/src/out/Debug" 211 "CHROMIUM_OUTPUT_DIR": "[SLAVE_BUILD]/src/out/Debug"
205 }, 212 },
206 "name": "[trigger] example_uirobot_suite", 213 "name": "[trigger] example_uirobot_suite",
207 "~followup_annotations": [ 214 "~followup_annotations": [
208 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@", 215 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@",
209 "@@@STEP_LOG_LINE@json.output@{@@@", 216 "@@@STEP_LOG_LINE@json.output@{@@@",
210 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 217 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
211 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 218 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
212 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 219 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
213 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 220 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
214 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 221 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
215 "@@@STEP_LOG_LINE@json.output@ }@@@", 222 "@@@STEP_LOG_LINE@json.output@ }@@@",
216 "@@@STEP_LOG_LINE@json.output@ }, @@@", 223 "@@@STEP_LOG_LINE@json.output@ }, @@@",
217 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@", 224 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@",
218 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"T35TRUN1D\"@@@", 225 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"T35TRUN1D\"@@@",
219 "@@@STEP_LOG_LINE@json.output@ }@@@", 226 "@@@STEP_LOG_LINE@json.output@ }@@@",
220 "@@@STEP_LOG_LINE@json.output@}@@@", 227 "@@@STEP_LOG_LINE@json.output@}@@@",
221 "@@@STEP_LOG_END@json.output@@@" 228 "@@@STEP_LOG_END@json.output@@@"
222 ] 229 ]
223 }, 230 },
224 { 231 {
225 "cmd": [ 232 "cmd": [
226 "python", 233 "python",
227 "-u", 234 "-u",
228 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 235 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
229 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}, \"test_run\": {\"test_run_id\": \"T35TRUN1D\"}}", 236 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}, \"test_run\": {\"test_run_id\": \"T35TRUN1D\"}}",
230 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json" 237 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json"
231 ], 238 ],
239 "cwd": "[SLAVE_BUILD]",
232 "name": "[trigger] save example_uirobot_suite" 240 "name": "[trigger] save example_uirobot_suite"
233 }, 241 },
234 { 242 {
235 "cmd": [ 243 "cmd": [
236 "python", 244 "python",
237 "-u", 245 "-u",
238 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 246 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
239 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 247 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
240 "/path/to/tmp/json" 248 "/path/to/tmp/json"
241 ], 249 ],
250 "cwd": "[SLAVE_BUILD]",
242 "name": "[collect] load example_gtest_suite", 251 "name": "[collect] load example_gtest_suite",
243 "~followup_annotations": [ 252 "~followup_annotations": [
244 "@@@STEP_LOG_LINE@json.output@{@@@", 253 "@@@STEP_LOG_LINE@json.output@{@@@",
245 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 254 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
246 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 255 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
247 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 256 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
248 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 257 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
249 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 258 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
250 "@@@STEP_LOG_LINE@json.output@ }@@@", 259 "@@@STEP_LOG_LINE@json.output@ }@@@",
251 "@@@STEP_LOG_LINE@json.output@ }@@@", 260 "@@@STEP_LOG_LINE@json.output@ }@@@",
252 "@@@STEP_LOG_LINE@json.output@}@@@", 261 "@@@STEP_LOG_LINE@json.output@}@@@",
253 "@@@STEP_LOG_END@json.output@@@" 262 "@@@STEP_LOG_END@json.output@@@"
254 ] 263 ]
255 }, 264 },
256 { 265 {
257 "cmd": [ 266 "cmd": [
258 "python", 267 "python",
259 "-u", 268 "-u",
260 "[CWD]/src/build/android/test_runner.py", 269 "[SLAVE_BUILD]/src/build/android/test_runner.py",
261 "gtest", 270 "gtest",
262 "-s", 271 "-s",
263 "example_gtest_suite", 272 "example_gtest_suite",
264 "--enable-platform-mode", 273 "--enable-platform-mode",
265 "-e", 274 "-e",
266 "remote_device", 275 "remote_device",
267 "--api-key-file", 276 "--api-key-file",
268 "[ROOT]/b/build/site_config/.amp_main_pool_key", 277 "[BUILD]/site_config/.amp_main_pool_key",
269 "--api-secret-file", 278 "--api-secret-file",
270 "[ROOT]/b/build/site_config/.amp_main_pool_secret", 279 "[BUILD]/site_config/.amp_main_pool_secret",
271 "--api-address", 280 "--api-address",
272 "127.0.0.1", 281 "127.0.0.1",
273 "--api-port", 282 "--api-port",
274 "80", 283 "80",
275 "--api-protocol", 284 "--api-protocol",
276 "http", 285 "http",
277 "--device-type", 286 "--device-type",
278 "Android", 287 "Android",
279 "--collect", 288 "--collect",
280 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 289 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
281 "--results-path", 290 "--results-path",
282 "[TMP]/amp_results_tmp_2/T35TRUN1D/results.zip", 291 "[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/results.zip",
283 "--verbose" 292 "--verbose"
284 ], 293 ],
294 "cwd": "[SLAVE_BUILD]",
285 "env": { 295 "env": {
286 "CHROMIUM_OUTPUT_DIR": "[CWD]/src/out/Debug" 296 "CHROMIUM_OUTPUT_DIR": "[SLAVE_BUILD]/src/out/Debug"
287 }, 297 },
288 "name": "[collect] example_gtest_suite", 298 "name": "[collect] example_gtest_suite",
289 "~followup_annotations": [ 299 "~followup_annotations": [
290 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@" 300 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@"
291 ] 301 ]
292 }, 302 },
293 { 303 {
294 "cmd": [ 304 "cmd": [
295 "python", 305 "python",
296 "-u", 306 "-u",
297 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 307 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
298 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 308 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
299 "/path/to/tmp/json" 309 "/path/to/tmp/json"
300 ], 310 ],
311 "cwd": "[SLAVE_BUILD]",
301 "name": "[upload logcat] load example_gtest_suite data", 312 "name": "[upload logcat] load example_gtest_suite data",
302 "~followup_annotations": [ 313 "~followup_annotations": [
303 "@@@STEP_LOG_LINE@json.output@{@@@", 314 "@@@STEP_LOG_LINE@json.output@{@@@",
304 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@", 315 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@",
305 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@", 316 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@",
306 "@@@STEP_LOG_LINE@json.output@ }@@@", 317 "@@@STEP_LOG_LINE@json.output@ }@@@",
307 "@@@STEP_LOG_LINE@json.output@}@@@", 318 "@@@STEP_LOG_LINE@json.output@}@@@",
308 "@@@STEP_LOG_END@json.output@@@" 319 "@@@STEP_LOG_END@json.output@@@"
309 ] 320 ]
310 }, 321 },
311 { 322 {
312 "cmd": [ 323 "cmd": [
313 "python", 324 "python",
314 "-u", 325 "-u",
315 "RECIPE_MODULE[build::zip]/resources/unzip.py" 326 "RECIPE_MODULE[build::zip]/resources/unzip.py"
316 ], 327 ],
328 "cwd": "[SLAVE_BUILD]",
317 "name": "[upload logcat] unzip results for example_gtest_suite", 329 "name": "[upload logcat] unzip results for example_gtest_suite",
318 "stdin": "{\"output\": \"[TMP]/amp_results_tmp_2/T35TRUN1D/unzipped_results\ ", \"zip_file\": \"[TMP]/amp_results_tmp_2/T35TRUN1D/results.zip\"}" 330 "stdin": "{\"output\": \"[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/unzipped_res ults\", \"zip_file\": \"[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/results.zip\"}"
319 }, 331 },
320 { 332 {
321 "cmd": [ 333 "cmd": [
322 "python", 334 "python",
323 "-u", 335 "-u",
324 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py", 336 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py",
325 "--", 337 "--",
326 "[ROOT]/b/depot_tools/gsutil.py", 338 "[DEPOT_TOOLS]/gsutil.py",
327 "----", 339 "----",
328 "cp", 340 "cp",
329 "[TMP]/amp_results_tmp_2/T35TRUN1D/unzipped_results/appurify_results/logca t.txt", 341 "[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/unzipped_results/appurify_results/ logcat.txt",
330 "gs://chrome-amp-results/logcats/logcat_example_gtest_suite_T35TRUN1D.txt" 342 "gs://chrome-amp-results/logcats/logcat_example_gtest_suite_T35TRUN1D.txt"
331 ], 343 ],
344 "cwd": "[SLAVE_BUILD]",
332 "name": "gsutil [upload logcat] example_gtest_suite", 345 "name": "gsutil [upload logcat] example_gtest_suite",
333 "~followup_annotations": [ 346 "~followup_annotations": [
334 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_gtest_suite_T35TRUN1D.txt@@@" 347 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_gtest_suite_T35TRUN1D.txt@@@"
335 ] 348 ]
336 }, 349 },
337 { 350 {
338 "cmd": [ 351 "cmd": [
339 "python", 352 "python",
340 "-u", 353 "-u",
341 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 354 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
342 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 355 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
343 "/path/to/tmp/json" 356 "/path/to/tmp/json"
344 ], 357 ],
358 "cwd": "[SLAVE_BUILD]",
345 "name": "[collect] load example_instrumentation_suite", 359 "name": "[collect] load example_instrumentation_suite",
346 "~followup_annotations": [ 360 "~followup_annotations": [
347 "@@@STEP_LOG_LINE@json.output@{@@@", 361 "@@@STEP_LOG_LINE@json.output@{@@@",
348 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 362 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
349 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 363 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
350 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 364 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
351 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 365 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
352 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 366 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
353 "@@@STEP_LOG_LINE@json.output@ }@@@", 367 "@@@STEP_LOG_LINE@json.output@ }@@@",
354 "@@@STEP_LOG_LINE@json.output@ }@@@", 368 "@@@STEP_LOG_LINE@json.output@ }@@@",
355 "@@@STEP_LOG_LINE@json.output@}@@@", 369 "@@@STEP_LOG_LINE@json.output@}@@@",
356 "@@@STEP_LOG_END@json.output@@@" 370 "@@@STEP_LOG_END@json.output@@@"
357 ] 371 ]
358 }, 372 },
359 { 373 {
360 "cmd": [ 374 "cmd": [
361 "python", 375 "python",
362 "-u", 376 "-u",
363 "[CWD]/src/build/android/test_runner.py", 377 "[SLAVE_BUILD]/src/build/android/test_runner.py",
364 "instrumentation", 378 "instrumentation",
365 "--apk-under-test", 379 "--apk-under-test",
366 "ApkUnderTest.apk", 380 "ApkUnderTest.apk",
367 "--test-apk", 381 "--test-apk",
368 "TestApk.apk", 382 "TestApk.apk",
369 "--enable-platform-mode", 383 "--enable-platform-mode",
370 "-e", 384 "-e",
371 "remote_device", 385 "remote_device",
372 "--api-key-file", 386 "--api-key-file",
373 "[ROOT]/b/build/site_config/.amp_main_pool_key", 387 "[BUILD]/site_config/.amp_main_pool_key",
374 "--api-secret-file", 388 "--api-secret-file",
375 "[ROOT]/b/build/site_config/.amp_main_pool_secret", 389 "[BUILD]/site_config/.amp_main_pool_secret",
376 "--api-address", 390 "--api-address",
377 "127.0.0.1", 391 "127.0.0.1",
378 "--api-port", 392 "--api-port",
379 "80", 393 "80",
380 "--api-protocol", 394 "--api-protocol",
381 "http", 395 "http",
382 "--device-type", 396 "--device-type",
383 "Android", 397 "Android",
384 "--collect", 398 "--collect",
385 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 399 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
386 "--results-path", 400 "--results-path",
387 "[TMP]/amp_results_tmp_2/T35TRUN1D/results.zip", 401 "[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/results.zip",
388 "--verbose" 402 "--verbose"
389 ], 403 ],
404 "cwd": "[SLAVE_BUILD]",
390 "env": { 405 "env": {
391 "CHROMIUM_OUTPUT_DIR": "[CWD]/src/out/Debug" 406 "CHROMIUM_OUTPUT_DIR": "[SLAVE_BUILD]/src/out/Debug"
392 }, 407 },
393 "name": "[collect] example_instrumentation_suite", 408 "name": "[collect] example_instrumentation_suite",
394 "~followup_annotations": [ 409 "~followup_annotations": [
395 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@" 410 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@"
396 ] 411 ]
397 }, 412 },
398 { 413 {
399 "cmd": [ 414 "cmd": [
400 "python", 415 "python",
401 "-u", 416 "-u",
402 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 417 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
403 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 418 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
404 "/path/to/tmp/json" 419 "/path/to/tmp/json"
405 ], 420 ],
421 "cwd": "[SLAVE_BUILD]",
406 "name": "[upload logcat] load example_instrumentation_suite data", 422 "name": "[upload logcat] load example_instrumentation_suite data",
407 "~followup_annotations": [ 423 "~followup_annotations": [
408 "@@@STEP_LOG_LINE@json.output@{@@@", 424 "@@@STEP_LOG_LINE@json.output@{@@@",
409 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@", 425 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@",
410 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@", 426 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@",
411 "@@@STEP_LOG_LINE@json.output@ }@@@", 427 "@@@STEP_LOG_LINE@json.output@ }@@@",
412 "@@@STEP_LOG_LINE@json.output@}@@@", 428 "@@@STEP_LOG_LINE@json.output@}@@@",
413 "@@@STEP_LOG_END@json.output@@@" 429 "@@@STEP_LOG_END@json.output@@@"
414 ] 430 ]
415 }, 431 },
416 { 432 {
417 "cmd": [ 433 "cmd": [
418 "python", 434 "python",
419 "-u", 435 "-u",
420 "RECIPE_MODULE[build::zip]/resources/unzip.py" 436 "RECIPE_MODULE[build::zip]/resources/unzip.py"
421 ], 437 ],
438 "cwd": "[SLAVE_BUILD]",
422 "name": "[upload logcat] unzip results for example_instrumentation_suite", 439 "name": "[upload logcat] unzip results for example_instrumentation_suite",
423 "stdin": "{\"output\": \"[TMP]/amp_results_tmp_2/T35TRUN1D/unzipped_results\ ", \"zip_file\": \"[TMP]/amp_results_tmp_2/T35TRUN1D/results.zip\"}" 440 "stdin": "{\"output\": \"[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/unzipped_res ults\", \"zip_file\": \"[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/results.zip\"}"
424 }, 441 },
425 { 442 {
426 "cmd": [ 443 "cmd": [
427 "python", 444 "python",
428 "-u", 445 "-u",
429 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py", 446 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py",
430 "--", 447 "--",
431 "[ROOT]/b/depot_tools/gsutil.py", 448 "[DEPOT_TOOLS]/gsutil.py",
432 "----", 449 "----",
433 "cp", 450 "cp",
434 "[TMP]/amp_results_tmp_2/T35TRUN1D/unzipped_results/appurify_results/logca t.txt", 451 "[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/unzipped_results/appurify_results/ logcat.txt",
435 "gs://chrome-amp-results/logcats/logcat_example_instrumentation_suite_T35T RUN1D.txt" 452 "gs://chrome-amp-results/logcats/logcat_example_instrumentation_suite_T35T RUN1D.txt"
436 ], 453 ],
454 "cwd": "[SLAVE_BUILD]",
437 "name": "gsutil [upload logcat] example_instrumentation_suite", 455 "name": "gsutil [upload logcat] example_instrumentation_suite",
438 "~followup_annotations": [ 456 "~followup_annotations": [
439 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_instrumentation_suite_T35TRUN1D.txt@@@" 457 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_instrumentation_suite_T35TRUN1D.txt@@@"
440 ] 458 ]
441 }, 459 },
442 { 460 {
443 "cmd": [ 461 "cmd": [
444 "python", 462 "python",
445 "-u", 463 "-u",
446 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 464 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
447 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 465 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
448 "/path/to/tmp/json" 466 "/path/to/tmp/json"
449 ], 467 ],
468 "cwd": "[SLAVE_BUILD]",
450 "name": "[collect] load example_uirobot_suite", 469 "name": "[collect] load example_uirobot_suite",
451 "~followup_annotations": [ 470 "~followup_annotations": [
452 "@@@STEP_LOG_LINE@json.output@{@@@", 471 "@@@STEP_LOG_LINE@json.output@{@@@",
453 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 472 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
454 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 473 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
455 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 474 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
456 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 475 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
457 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 476 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
458 "@@@STEP_LOG_LINE@json.output@ }@@@", 477 "@@@STEP_LOG_LINE@json.output@ }@@@",
459 "@@@STEP_LOG_LINE@json.output@ }@@@", 478 "@@@STEP_LOG_LINE@json.output@ }@@@",
460 "@@@STEP_LOG_LINE@json.output@}@@@", 479 "@@@STEP_LOG_LINE@json.output@}@@@",
461 "@@@STEP_LOG_END@json.output@@@" 480 "@@@STEP_LOG_END@json.output@@@"
462 ] 481 ]
463 }, 482 },
464 { 483 {
465 "cmd": [ 484 "cmd": [
466 "python", 485 "python",
467 "-u", 486 "-u",
468 "[CWD]/src/build/android/test_runner.py", 487 "[SLAVE_BUILD]/src/build/android/test_runner.py",
469 "uirobot", 488 "uirobot",
470 "--minutes", 489 "--minutes",
471 "5", 490 "5",
472 "--enable-platform-mode", 491 "--enable-platform-mode",
473 "-e", 492 "-e",
474 "remote_device", 493 "remote_device",
475 "--api-key-file", 494 "--api-key-file",
476 "[ROOT]/b/build/site_config/.amp_main_pool_key", 495 "[BUILD]/site_config/.amp_main_pool_key",
477 "--api-secret-file", 496 "--api-secret-file",
478 "[ROOT]/b/build/site_config/.amp_main_pool_secret", 497 "[BUILD]/site_config/.amp_main_pool_secret",
479 "--api-address", 498 "--api-address",
480 "127.0.0.1", 499 "127.0.0.1",
481 "--api-port", 500 "--api-port",
482 "80", 501 "80",
483 "--api-protocol", 502 "--api-protocol",
484 "http", 503 "http",
485 "--device-type", 504 "--device-type",
486 "Android", 505 "Android",
487 "--collect", 506 "--collect",
488 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 507 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
489 "--results-path", 508 "--results-path",
490 "[TMP]/amp_results_tmp_2/T35TRUN1D/results.zip", 509 "[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/results.zip",
491 "--verbose" 510 "--verbose"
492 ], 511 ],
512 "cwd": "[SLAVE_BUILD]",
493 "env": { 513 "env": {
494 "CHROMIUM_OUTPUT_DIR": "[CWD]/src/out/Debug" 514 "CHROMIUM_OUTPUT_DIR": "[SLAVE_BUILD]/src/out/Debug"
495 }, 515 },
496 "name": "[collect] example_uirobot_suite", 516 "name": "[collect] example_uirobot_suite",
497 "~followup_annotations": [ 517 "~followup_annotations": [
498 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@" 518 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@"
499 ] 519 ]
500 }, 520 },
501 { 521 {
502 "cmd": [ 522 "cmd": [
503 "python", 523 "python",
504 "-u", 524 "-u",
505 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 525 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
506 "[TMP]/amp_trigger_tmp_1/T35TRUN1D.json", 526 "[TMP_BASE]/amp_trigger_tmp_1/T35TRUN1D.json",
507 "/path/to/tmp/json" 527 "/path/to/tmp/json"
508 ], 528 ],
529 "cwd": "[SLAVE_BUILD]",
509 "name": "[upload logcat] load example_uirobot_suite data", 530 "name": "[upload logcat] load example_uirobot_suite data",
510 "~followup_annotations": [ 531 "~followup_annotations": [
511 "@@@STEP_LOG_LINE@json.output@{@@@", 532 "@@@STEP_LOG_LINE@json.output@{@@@",
512 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@", 533 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@",
513 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@", 534 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@",
514 "@@@STEP_LOG_LINE@json.output@ }@@@", 535 "@@@STEP_LOG_LINE@json.output@ }@@@",
515 "@@@STEP_LOG_LINE@json.output@}@@@", 536 "@@@STEP_LOG_LINE@json.output@}@@@",
516 "@@@STEP_LOG_END@json.output@@@" 537 "@@@STEP_LOG_END@json.output@@@"
517 ] 538 ]
518 }, 539 },
519 { 540 {
520 "cmd": [ 541 "cmd": [
521 "python", 542 "python",
522 "-u", 543 "-u",
523 "RECIPE_MODULE[build::zip]/resources/unzip.py" 544 "RECIPE_MODULE[build::zip]/resources/unzip.py"
524 ], 545 ],
546 "cwd": "[SLAVE_BUILD]",
525 "name": "[upload logcat] unzip results for example_uirobot_suite", 547 "name": "[upload logcat] unzip results for example_uirobot_suite",
526 "stdin": "{\"output\": \"[TMP]/amp_results_tmp_2/T35TRUN1D/unzipped_results\ ", \"zip_file\": \"[TMP]/amp_results_tmp_2/T35TRUN1D/results.zip\"}" 548 "stdin": "{\"output\": \"[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/unzipped_res ults\", \"zip_file\": \"[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/results.zip\"}"
527 }, 549 },
528 { 550 {
529 "cmd": [ 551 "cmd": [
530 "python", 552 "python",
531 "-u", 553 "-u",
532 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py", 554 "RECIPE_MODULE[build::gsutil]/resources/gsutil_wrapper.py",
533 "--", 555 "--",
534 "[ROOT]/b/depot_tools/gsutil.py", 556 "[DEPOT_TOOLS]/gsutil.py",
535 "----", 557 "----",
536 "cp", 558 "cp",
537 "[TMP]/amp_results_tmp_2/T35TRUN1D/unzipped_results/appurify_results/logca t.txt", 559 "[TMP_BASE]/amp_results_tmp_2/T35TRUN1D/unzipped_results/appurify_results/ logcat.txt",
538 "gs://chrome-amp-results/logcats/logcat_example_uirobot_suite_T35TRUN1D.tx t" 560 "gs://chrome-amp-results/logcats/logcat_example_uirobot_suite_T35TRUN1D.tx t"
539 ], 561 ],
562 "cwd": "[SLAVE_BUILD]",
540 "name": "gsutil [upload logcat] example_uirobot_suite", 563 "name": "gsutil [upload logcat] example_uirobot_suite",
541 "~followup_annotations": [ 564 "~followup_annotations": [
542 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_uirobot_suite_T35TRUN1D.txt@@@" 565 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_uirobot_suite_T35TRUN1D.txt@@@"
543 ] 566 ]
544 }, 567 },
545 { 568 {
546 "name": "$result", 569 "name": "$result",
547 "recipe_result": null, 570 "recipe_result": null,
548 "status_code": 0 571 "status_code": 0
549 } 572 }
550 ] 573 ]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698