OLD | NEW |
1 [ | 1 [ |
2 { | 2 { |
3 "cmd": [ | 3 "cmd": [ |
4 "python", | 4 "python", |
5 "-u", | 5 "-u", |
6 "[SLAVE_BUILD]/skia/tools/buildbot_spec.py", | 6 "[CWD]/skia/tools/buildbot_spec.py", |
7 "/path/to/tmp/json", | 7 "/path/to/tmp/json", |
8 "Test-Android-GCC-Nexus6-GPU-Adreno420-Arm7-Release" | 8 "Test-Android-GCC-Nexus6-GPU-Adreno420-Arm7-Release" |
9 ], | 9 ], |
10 "cwd": "[SLAVE_BUILD]/skia", | 10 "cwd": "[CWD]/skia", |
11 "name": "exec buildbot_spec.py", | 11 "name": "exec buildbot_spec.py", |
12 "~followup_annotations": [ | 12 "~followup_annotations": [ |
13 "@@@STEP_LOG_LINE@json.output@{@@@", | 13 "@@@STEP_LOG_LINE@json.output@{@@@", |
14 "@@@STEP_LOG_LINE@json.output@ \"build_targets\": [@@@", | 14 "@@@STEP_LOG_LINE@json.output@ \"build_targets\": [@@@", |
15 "@@@STEP_LOG_LINE@json.output@ \"dm\"@@@", | 15 "@@@STEP_LOG_LINE@json.output@ \"dm\"@@@", |
16 "@@@STEP_LOG_LINE@json.output@ ], @@@", | 16 "@@@STEP_LOG_LINE@json.output@ ], @@@", |
17 "@@@STEP_LOG_LINE@json.output@ \"builder_cfg\": {@@@", | 17 "@@@STEP_LOG_LINE@json.output@ \"builder_cfg\": {@@@", |
18 "@@@STEP_LOG_LINE@json.output@ \"arch\": \"Arm7\", @@@", | 18 "@@@STEP_LOG_LINE@json.output@ \"arch\": \"Arm7\", @@@", |
19 "@@@STEP_LOG_LINE@json.output@ \"compiler\": \"GCC\", @@@", | 19 "@@@STEP_LOG_LINE@json.output@ \"compiler\": \"GCC\", @@@", |
20 "@@@STEP_LOG_LINE@json.output@ \"configuration\": \"Release\", @@@", | 20 "@@@STEP_LOG_LINE@json.output@ \"configuration\": \"Release\", @@@", |
(...skipping 19 matching lines...) Expand all Loading... |
40 "@@@STEP_LOG_LINE@json.output@ ], @@@", | 40 "@@@STEP_LOG_LINE@json.output@ ], @@@", |
41 "@@@STEP_LOG_LINE@json.output@ \"product.board\": \"shamu\", @@@", | 41 "@@@STEP_LOG_LINE@json.output@ \"product.board\": \"shamu\", @@@", |
42 "@@@STEP_LOG_LINE@json.output@ \"upload_dm_results\": true, @@@", | 42 "@@@STEP_LOG_LINE@json.output@ \"upload_dm_results\": true, @@@", |
43 "@@@STEP_LOG_LINE@json.output@ \"upload_perf_results\": false@@@", | 43 "@@@STEP_LOG_LINE@json.output@ \"upload_perf_results\": false@@@", |
44 "@@@STEP_LOG_LINE@json.output@}@@@", | 44 "@@@STEP_LOG_LINE@json.output@}@@@", |
45 "@@@STEP_LOG_END@json.output@@@" | 45 "@@@STEP_LOG_END@json.output@@@" |
46 ] | 46 ] |
47 }, | 47 }, |
48 { | 48 { |
49 "cmd": [ | 49 "cmd": [ |
50 "[SLAVE_BUILD]/skia/platform_tools/android/bin/adb_wait_for_device" | 50 "[CWD]/skia/platform_tools/android/bin/adb_wait_for_device" |
51 ], | 51 ], |
52 "cwd": "[SLAVE_BUILD]", | |
53 "env": { | 52 "env": { |
54 "ANDROID_HOME": "/b/android-sdk-linux", | 53 "ANDROID_HOME": "/b/android-sdk-linux", |
55 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", | 54 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", |
56 "BUILDTYPE": "Release", | 55 "BUILDTYPE": "Release", |
57 "CHROME_HEADLESS": "1", | 56 "CHROME_HEADLESS": "1", |
58 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 57 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
59 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 58 "PATH": "[CWD]/depot_tools:%(PATH)s", |
60 "SKIA_ANDROID_VERBOSE_SETUP": "1", | 59 "SKIA_ANDROID_VERBOSE_SETUP": "1", |
61 "SKIA_OUT": "[SLAVE_BUILD]/out" | 60 "SKIA_OUT": "[CWD]/out" |
62 }, | 61 }, |
63 "name": "wait for device (1)" | 62 "name": "wait for device (1)" |
64 }, | 63 }, |
65 { | 64 { |
66 "cmd": [ | 65 "cmd": [ |
67 "[SLAVE_BUILD]/skia/platform_tools/android/bin/adb_wait_for_charge" | 66 "[CWD]/skia/platform_tools/android/bin/adb_wait_for_charge" |
68 ], | 67 ], |
69 "cwd": "[SLAVE_BUILD]", | |
70 "env": { | 68 "env": { |
71 "ANDROID_HOME": "/b/android-sdk-linux", | 69 "ANDROID_HOME": "/b/android-sdk-linux", |
72 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", | 70 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", |
73 "BUILDTYPE": "Release", | 71 "BUILDTYPE": "Release", |
74 "CHROME_HEADLESS": "1", | 72 "CHROME_HEADLESS": "1", |
75 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 73 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
76 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 74 "PATH": "[CWD]/depot_tools:%(PATH)s", |
77 "SKIA_ANDROID_VERBOSE_SETUP": "1", | 75 "SKIA_ANDROID_VERBOSE_SETUP": "1", |
78 "SKIA_OUT": "[SLAVE_BUILD]/out" | 76 "SKIA_OUT": "[CWD]/out" |
79 }, | 77 }, |
80 "name": "wait for charge (1)" | 78 "name": "wait for charge (1)" |
81 }, | 79 }, |
82 { | 80 { |
83 "cmd": [ | 81 "cmd": [ |
84 "/b/android-sdk-linux/platform-tools/adb", | 82 "/b/android-sdk-linux/platform-tools/adb", |
85 "shell", | 83 "shell", |
86 "echo", | 84 "echo", |
87 "$EXTERNAL_STORAGE" | 85 "$EXTERNAL_STORAGE" |
88 ], | 86 ], |
89 "cwd": "[SLAVE_BUILD]", | |
90 "env": { | 87 "env": { |
91 "BUILDTYPE": "Release", | 88 "BUILDTYPE": "Release", |
92 "CHROME_HEADLESS": "1", | 89 "CHROME_HEADLESS": "1", |
93 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 90 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
94 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 91 "PATH": "[CWD]/depot_tools:%(PATH)s", |
95 "SKIA_OUT": "[SLAVE_BUILD]/out" | 92 "SKIA_OUT": "[CWD]/out" |
96 }, | 93 }, |
97 "name": "get EXTERNAL_STORAGE dir", | 94 "name": "get EXTERNAL_STORAGE dir", |
98 "stdout": "/path/to/tmp/" | 95 "stdout": "/path/to/tmp/" |
99 }, | 96 }, |
100 { | 97 { |
101 "cmd": [ | 98 "cmd": [ |
102 "[SLAVE_BUILD]/skia/platform_tools/android/bin/android_kill_skia", | 99 "[CWD]/skia/platform_tools/android/bin/android_kill_skia", |
103 "--verbose" | 100 "--verbose" |
104 ], | 101 ], |
105 "cwd": "[SLAVE_BUILD]", | |
106 "env": { | 102 "env": { |
107 "ANDROID_HOME": "/b/android-sdk-linux", | 103 "ANDROID_HOME": "/b/android-sdk-linux", |
108 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", | 104 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", |
109 "BUILDTYPE": "Release", | 105 "BUILDTYPE": "Release", |
110 "CHROME_HEADLESS": "1", | 106 "CHROME_HEADLESS": "1", |
111 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 107 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
112 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 108 "PATH": "[CWD]/depot_tools:%(PATH)s", |
113 "SKIA_ANDROID_VERBOSE_SETUP": "1", | 109 "SKIA_ANDROID_VERBOSE_SETUP": "1", |
114 "SKIA_OUT": "[SLAVE_BUILD]/out" | 110 "SKIA_OUT": "[CWD]/out" |
115 }, | 111 }, |
116 "name": "kill skia" | 112 "name": "kill skia" |
117 }, | 113 }, |
118 { | 114 { |
119 "cmd": [ | 115 "cmd": [ |
120 "/b/android-sdk-linux/platform-tools/adb", | 116 "/b/android-sdk-linux/platform-tools/adb", |
121 "shell", | 117 "shell", |
122 "dumpsys", | 118 "dumpsys", |
123 "batteryproperties" | 119 "batteryproperties" |
124 ], | 120 ], |
125 "cwd": "[SLAVE_BUILD]", | |
126 "env": { | 121 "env": { |
127 "BUILDTYPE": "Release", | 122 "BUILDTYPE": "Release", |
128 "CHROME_HEADLESS": "1", | 123 "CHROME_HEADLESS": "1", |
129 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 124 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
130 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 125 "PATH": "[CWD]/depot_tools:%(PATH)s", |
131 "SKIA_OUT": "[SLAVE_BUILD]/out" | 126 "SKIA_OUT": "[CWD]/out" |
132 }, | 127 }, |
133 "name": "starting battery stats" | 128 "name": "starting battery stats" |
134 }, | 129 }, |
135 { | 130 { |
136 "cmd": [ | 131 "cmd": [ |
137 "[SLAVE_BUILD]/skia/platform_tools/android/bin/adb_push_if_needed", | 132 "[CWD]/skia/platform_tools/android/bin/adb_push_if_needed", |
138 "--verbose", | 133 "--verbose", |
139 "[SLAVE_BUILD]/skia/resources", | 134 "[CWD]/skia/resources", |
140 "/storage/emulated/legacy/skiabot/skia_resources" | 135 "/storage/emulated/legacy/skiabot/skia_resources" |
141 ], | 136 ], |
142 "cwd": "[SLAVE_BUILD]", | |
143 "env": { | 137 "env": { |
144 "ANDROID_HOME": "/b/android-sdk-linux", | 138 "ANDROID_HOME": "/b/android-sdk-linux", |
145 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", | 139 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", |
146 "BUILDTYPE": "Release", | 140 "BUILDTYPE": "Release", |
147 "CHROME_HEADLESS": "1", | 141 "CHROME_HEADLESS": "1", |
148 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 142 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
149 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 143 "PATH": "[CWD]/depot_tools:%(PATH)s", |
150 "SKIA_ANDROID_VERBOSE_SETUP": "1", | 144 "SKIA_ANDROID_VERBOSE_SETUP": "1", |
151 "SKIA_OUT": "[SLAVE_BUILD]/out" | 145 "SKIA_OUT": "[CWD]/out" |
152 }, | 146 }, |
153 "name": "push resources" | 147 "name": "push resources" |
154 }, | 148 }, |
155 { | 149 { |
156 "cmd": [ | 150 "cmd": [ |
157 "python", | 151 "python", |
158 "-u", | 152 "-u", |
159 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", | 153 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", |
160 "[SLAVE_BUILD]/tmp/SKP_VERSION", | 154 "[CWD]/tmp/SKP_VERSION", |
161 "/path/to/tmp/" | 155 "/path/to/tmp/" |
162 ], | 156 ], |
163 "cwd": "[SLAVE_BUILD]", | |
164 "name": "Get downloaded SKP_VERSION" | 157 "name": "Get downloaded SKP_VERSION" |
165 }, | 158 }, |
166 { | 159 { |
167 "cmd": [ | 160 "cmd": [ |
168 "/b/android-sdk-linux/platform-tools/adb", | 161 "/b/android-sdk-linux/platform-tools/adb", |
169 "shell", | 162 "shell", |
170 "cat", | 163 "cat", |
171 "/storage/emulated/legacy/skiabot/skia_tmp_dir/SKP_VERSION" | 164 "/storage/emulated/legacy/skiabot/skia_tmp_dir/SKP_VERSION" |
172 ], | 165 ], |
173 "cwd": "[SLAVE_BUILD]", | |
174 "env": { | 166 "env": { |
175 "BUILDTYPE": "Release", | 167 "BUILDTYPE": "Release", |
176 "CHROME_HEADLESS": "1", | 168 "CHROME_HEADLESS": "1", |
177 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 169 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
178 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 170 "PATH": "[CWD]/depot_tools:%(PATH)s", |
179 "SKIA_OUT": "[SLAVE_BUILD]/out" | 171 "SKIA_OUT": "[CWD]/out" |
180 }, | 172 }, |
181 "name": "read SKP_VERSION", | 173 "name": "read SKP_VERSION", |
182 "stdout": "/path/to/tmp/" | 174 "stdout": "/path/to/tmp/" |
183 }, | 175 }, |
184 { | 176 { |
185 "cmd": [ | 177 "cmd": [ |
186 "python", | 178 "python", |
187 "-u", | 179 "-u", |
188 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", | 180 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", |
189 "[SLAVE_BUILD]/tmp/SK_IMAGE_VERSION", | 181 "[CWD]/tmp/SK_IMAGE_VERSION", |
190 "/path/to/tmp/" | 182 "/path/to/tmp/" |
191 ], | 183 ], |
192 "cwd": "[SLAVE_BUILD]", | |
193 "name": "Get downloaded SK_IMAGE_VERSION" | 184 "name": "Get downloaded SK_IMAGE_VERSION" |
194 }, | 185 }, |
195 { | 186 { |
196 "cmd": [ | 187 "cmd": [ |
197 "/b/android-sdk-linux/platform-tools/adb", | 188 "/b/android-sdk-linux/platform-tools/adb", |
198 "shell", | 189 "shell", |
199 "cat", | 190 "cat", |
200 "/storage/emulated/legacy/skiabot/skia_tmp_dir/SK_IMAGE_VERSION" | 191 "/storage/emulated/legacy/skiabot/skia_tmp_dir/SK_IMAGE_VERSION" |
201 ], | 192 ], |
202 "cwd": "[SLAVE_BUILD]", | |
203 "env": { | 193 "env": { |
204 "BUILDTYPE": "Release", | 194 "BUILDTYPE": "Release", |
205 "CHROME_HEADLESS": "1", | 195 "CHROME_HEADLESS": "1", |
206 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 196 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
207 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 197 "PATH": "[CWD]/depot_tools:%(PATH)s", |
208 "SKIA_OUT": "[SLAVE_BUILD]/out" | 198 "SKIA_OUT": "[CWD]/out" |
209 }, | 199 }, |
210 "name": "read SK_IMAGE_VERSION", | 200 "name": "read SK_IMAGE_VERSION", |
211 "stdout": "/path/to/tmp/" | 201 "stdout": "/path/to/tmp/" |
212 }, | 202 }, |
213 { | 203 { |
214 "cmd": [ | 204 "cmd": [ |
215 "python", | 205 "python", |
216 "-u", | 206 "-u", |
217 "\nimport os, sys\nfrom common import chromium_utils # Error? See https://
crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveD
irectory(sys.argv[1])\n", | 207 "\nimport os, sys\nfrom common import chromium_utils # Error? See https://
crbug.com/584783.\n\n\nif os.path.exists(sys.argv[1]):\n chromium_utils.RemoveD
irectory(sys.argv[1])\n", |
218 "[SWARM_OUT_DIR]/dm" | 208 "[SWARM_OUT_DIR]/dm" |
219 ], | 209 ], |
220 "cwd": "[SLAVE_BUILD]", | |
221 "env": { | 210 "env": { |
222 "PYTHONPATH": "build/scripts" | 211 "PYTHONPATH": "build/scripts" |
223 }, | 212 }, |
224 "name": "rmtree dm", | 213 "name": "rmtree dm", |
225 "~followup_annotations": [ | 214 "~followup_annotations": [ |
226 "@@@STEP_LOG_LINE@python.inline@@@@", | 215 "@@@STEP_LOG_LINE@python.inline@@@@", |
227 "@@@STEP_LOG_LINE@python.inline@import os, sys@@@", | 216 "@@@STEP_LOG_LINE@python.inline@import os, sys@@@", |
228 "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error?
See https://crbug.com/584783.@@@", | 217 "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils # Error?
See https://crbug.com/584783.@@@", |
229 "@@@STEP_LOG_LINE@python.inline@@@@", | 218 "@@@STEP_LOG_LINE@python.inline@@@@", |
230 "@@@STEP_LOG_LINE@python.inline@@@@", | 219 "@@@STEP_LOG_LINE@python.inline@@@@", |
231 "@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@", | 220 "@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@", |
232 "@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[
1])@@@", | 221 "@@@STEP_LOG_LINE@python.inline@ chromium_utils.RemoveDirectory(sys.argv[
1])@@@", |
233 "@@@STEP_LOG_END@python.inline@@@" | 222 "@@@STEP_LOG_END@python.inline@@@" |
234 ] | 223 ] |
235 }, | 224 }, |
236 { | 225 { |
237 "cmd": [ | 226 "cmd": [ |
238 "python", | 227 "python", |
239 "-u", | 228 "-u", |
240 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.
path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not
a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", | 229 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.
path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not
a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", |
241 "[SWARM_OUT_DIR]/dm", | 230 "[SWARM_OUT_DIR]/dm", |
242 "511" | 231 "511" |
243 ], | 232 ], |
244 "cwd": "[SLAVE_BUILD]", | |
245 "name": "makedirs dm", | 233 "name": "makedirs dm", |
246 "~followup_annotations": [ | 234 "~followup_annotations": [ |
247 "@@@STEP_LOG_LINE@python.inline@@@@", | 235 "@@@STEP_LOG_LINE@python.inline@@@@", |
248 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", | 236 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", |
249 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", | 237 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", |
250 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", | 238 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", |
251 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", | 239 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", |
252 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", | 240 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", |
253 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" %
path@@@", | 241 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" %
path@@@", |
254 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", | 242 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", |
255 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", | 243 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", |
256 "@@@STEP_LOG_END@python.inline@@@" | 244 "@@@STEP_LOG_END@python.inline@@@" |
257 ] | 245 ] |
258 }, | 246 }, |
259 { | 247 { |
260 "cmd": [ | 248 "cmd": [ |
261 "/b/android-sdk-linux/platform-tools/adb", | 249 "/b/android-sdk-linux/platform-tools/adb", |
262 "shell", | 250 "shell", |
263 "rm", | 251 "rm", |
264 "-r", | 252 "-r", |
265 "/storage/emulated/legacy/skiabot/skia_dm" | 253 "/storage/emulated/legacy/skiabot/skia_dm" |
266 ], | 254 ], |
267 "cwd": "[SLAVE_BUILD]", | |
268 "env": { | 255 "env": { |
269 "BUILDTYPE": "Release", | 256 "BUILDTYPE": "Release", |
270 "CHROME_HEADLESS": "1", | 257 "CHROME_HEADLESS": "1", |
271 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 258 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
272 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 259 "PATH": "[CWD]/depot_tools:%(PATH)s", |
273 "SKIA_OUT": "[SLAVE_BUILD]/out" | 260 "SKIA_OUT": "[CWD]/out" |
274 }, | 261 }, |
275 "name": "rmdir skia_dm" | 262 "name": "rmdir skia_dm" |
276 }, | 263 }, |
277 { | 264 { |
278 "cmd": [ | 265 "cmd": [ |
279 "/b/android-sdk-linux/platform-tools/adb", | 266 "/b/android-sdk-linux/platform-tools/adb", |
280 "shell", | 267 "shell", |
281 "if", | 268 "if", |
282 "[", | 269 "[", |
283 "-e", | 270 "-e", |
284 "/storage/emulated/legacy/skiabot/skia_dm", | 271 "/storage/emulated/legacy/skiabot/skia_dm", |
285 "];", | 272 "];", |
286 "then", | 273 "then", |
287 "echo", | 274 "echo", |
288 "FILE_EXISTS;", | 275 "FILE_EXISTS;", |
289 "fi" | 276 "fi" |
290 ], | 277 ], |
291 "cwd": "[SLAVE_BUILD]", | |
292 "env": { | 278 "env": { |
293 "BUILDTYPE": "Release", | 279 "BUILDTYPE": "Release", |
294 "CHROME_HEADLESS": "1", | 280 "CHROME_HEADLESS": "1", |
295 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 281 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
296 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 282 "PATH": "[CWD]/depot_tools:%(PATH)s", |
297 "SKIA_OUT": "[SLAVE_BUILD]/out" | 283 "SKIA_OUT": "[CWD]/out" |
298 }, | 284 }, |
299 "name": "exists skia_dm", | 285 "name": "exists skia_dm", |
300 "stdout": "/path/to/tmp/" | 286 "stdout": "/path/to/tmp/" |
301 }, | 287 }, |
302 { | 288 { |
303 "cmd": [ | 289 "cmd": [ |
304 "/b/android-sdk-linux/platform-tools/adb", | 290 "/b/android-sdk-linux/platform-tools/adb", |
305 "shell", | 291 "shell", |
306 "mkdir", | 292 "mkdir", |
307 "-p", | 293 "-p", |
308 "/storage/emulated/legacy/skiabot/skia_dm" | 294 "/storage/emulated/legacy/skiabot/skia_dm" |
309 ], | 295 ], |
310 "cwd": "[SLAVE_BUILD]", | |
311 "env": { | 296 "env": { |
312 "BUILDTYPE": "Release", | 297 "BUILDTYPE": "Release", |
313 "CHROME_HEADLESS": "1", | 298 "CHROME_HEADLESS": "1", |
314 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 299 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
315 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 300 "PATH": "[CWD]/depot_tools:%(PATH)s", |
316 "SKIA_OUT": "[SLAVE_BUILD]/out" | 301 "SKIA_OUT": "[CWD]/out" |
317 }, | 302 }, |
318 "name": "mkdir skia_dm" | 303 "name": "mkdir skia_dm" |
319 }, | 304 }, |
320 { | 305 { |
321 "cmd": [ | 306 "cmd": [ |
322 "python", | 307 "python", |
323 "-u", | 308 "-u", |
324 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.
path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not
a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", | 309 "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.
path.isdir(path):\n if os.path.exists(path):\n print \"%s exists but is not
a dir\" % path\n sys.exit(1)\n os.makedirs(path, mode)\n", |
325 "[SLAVE_BUILD]/tmp", | 310 "[CWD]/tmp", |
326 "511" | 311 "511" |
327 ], | 312 ], |
328 "cwd": "[SLAVE_BUILD]", | |
329 "name": "makedirs tmp_dir", | 313 "name": "makedirs tmp_dir", |
330 "~followup_annotations": [ | 314 "~followup_annotations": [ |
331 "@@@STEP_LOG_LINE@python.inline@@@@", | 315 "@@@STEP_LOG_LINE@python.inline@@@@", |
332 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", | 316 "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", |
333 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", | 317 "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", |
334 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", | 318 "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", |
335 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", | 319 "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", |
336 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", | 320 "@@@STEP_LOG_LINE@python.inline@ if os.path.exists(path):@@@", |
337 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" %
path@@@", | 321 "@@@STEP_LOG_LINE@python.inline@ print \"%s exists but is not a dir\" %
path@@@", |
338 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", | 322 "@@@STEP_LOG_LINE@python.inline@ sys.exit(1)@@@", |
339 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", | 323 "@@@STEP_LOG_LINE@python.inline@ os.makedirs(path, mode)@@@", |
340 "@@@STEP_LOG_END@python.inline@@@" | 324 "@@@STEP_LOG_END@python.inline@@@" |
341 ] | 325 ] |
342 }, | 326 }, |
343 { | 327 { |
344 "cmd": [ | 328 "cmd": [ |
345 "python", | 329 "python", |
346 "-u", | 330 "-u", |
347 "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\
nimport urllib2\n\nHASHES_URL = 'https://gold.skia.org/_/hashes'\nRETRIES = 5\nT
IMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in r
ange(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HA
SHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.
argv[1], 'w') as f:\n f.write(hashes)\n break\n except Exception
as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n
print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math
.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(wait
time)\n", | 331 "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\
nimport urllib2\n\nHASHES_URL = 'https://gold.skia.org/_/hashes'\nRETRIES = 5\nT
IMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in r
ange(RETRIES):\n try:\n with contextlib.closing(\n urllib2.urlopen(HA
SHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read()\n with open(sys.
argv[1], 'w') as f:\n f.write(hashes)\n break\n except Exception
as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n
print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math
.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(wait
time)\n", |
348 "[SLAVE_BUILD]/tmp/uninteresting_hashes.txt" | 332 "[CWD]/tmp/uninteresting_hashes.txt" |
349 ], | 333 ], |
350 "cwd": "[SLAVE_BUILD]/skia", | 334 "cwd": "[CWD]/skia", |
351 "env": { | 335 "env": { |
352 "BUILDTYPE": "Release", | 336 "BUILDTYPE": "Release", |
353 "CHROME_HEADLESS": "1", | 337 "CHROME_HEADLESS": "1", |
354 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 338 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
355 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 339 "PATH": "[CWD]/depot_tools:%(PATH)s", |
356 "SKIA_OUT": "[SLAVE_BUILD]/out" | 340 "SKIA_OUT": "[CWD]/out" |
357 }, | 341 }, |
358 "name": "get uninteresting hashes", | 342 "name": "get uninteresting hashes", |
359 "~followup_annotations": [ | 343 "~followup_annotations": [ |
360 "@@@STEP_LOG_LINE@python.inline@@@@", | 344 "@@@STEP_LOG_LINE@python.inline@@@@", |
361 "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", | 345 "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", |
362 "@@@STEP_LOG_LINE@python.inline@import math@@@", | 346 "@@@STEP_LOG_LINE@python.inline@import math@@@", |
363 "@@@STEP_LOG_LINE@python.inline@import socket@@@", | 347 "@@@STEP_LOG_LINE@python.inline@import socket@@@", |
364 "@@@STEP_LOG_LINE@python.inline@import sys@@@", | 348 "@@@STEP_LOG_LINE@python.inline@import sys@@@", |
365 "@@@STEP_LOG_LINE@python.inline@import time@@@", | 349 "@@@STEP_LOG_LINE@python.inline@import time@@@", |
366 "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", | 350 "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", |
(...skipping 20 matching lines...) Expand all Loading... |
387 "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, ret
ry)@@@", | 371 "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, ret
ry)@@@", |
388 "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittim
e@@@", | 372 "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittim
e@@@", |
389 "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@", | 373 "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@", |
390 "@@@STEP_LOG_END@python.inline@@@" | 374 "@@@STEP_LOG_END@python.inline@@@" |
391 ] | 375 ] |
392 }, | 376 }, |
393 { | 377 { |
394 "cmd": [ | 378 "cmd": [ |
395 "/b/android-sdk-linux/platform-tools/adb", | 379 "/b/android-sdk-linux/platform-tools/adb", |
396 "push", | 380 "push", |
397 "[SLAVE_BUILD]/tmp/uninteresting_hashes.txt", | 381 "[CWD]/tmp/uninteresting_hashes.txt", |
398 "/storage/emulated/legacy/skiabot/skia_tmp_dir/uninteresting_hashes.txt" | 382 "/storage/emulated/legacy/skiabot/skia_tmp_dir/uninteresting_hashes.txt" |
399 ], | 383 ], |
400 "cwd": "[SLAVE_BUILD]", | |
401 "env": { | 384 "env": { |
402 "BUILDTYPE": "Release", | 385 "BUILDTYPE": "Release", |
403 "CHROME_HEADLESS": "1", | 386 "CHROME_HEADLESS": "1", |
404 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 387 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
405 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 388 "PATH": "[CWD]/depot_tools:%(PATH)s", |
406 "SKIA_OUT": "[SLAVE_BUILD]/out" | 389 "SKIA_OUT": "[CWD]/out" |
407 }, | 390 }, |
408 "name": "push uninteresting_hashes.txt" | 391 "name": "push uninteresting_hashes.txt" |
409 }, | 392 }, |
410 { | 393 { |
411 "cmd": [ | 394 "cmd": [ |
412 "[SLAVE_BUILD]/skia/platform_tools/android/bin/android_run_skia", | 395 "[CWD]/skia/platform_tools/android/bin/android_run_skia", |
413 "--verbose", | 396 "--verbose", |
414 "--logcat", | 397 "--logcat", |
415 "-d", | 398 "-d", |
416 "arm_v7_neon", | 399 "arm_v7_neon", |
417 "-t", | 400 "-t", |
418 "Release", | 401 "Release", |
419 "dm", | 402 "dm", |
420 "--undefok", | 403 "--undefok", |
421 "--resourcePath", | 404 "--resourcePath", |
422 "/storage/emulated/legacy/skiabot/skia_resources", | 405 "/storage/emulated/legacy/skiabot/skia_resources", |
(...skipping 26 matching lines...) Expand all Loading... |
449 "Nexus6", | 432 "Nexus6", |
450 "os", | 433 "os", |
451 "Android", | 434 "Android", |
452 "--uninterestingHashesFile", | 435 "--uninterestingHashesFile", |
453 "/storage/emulated/legacy/skiabot/skia_tmp_dir/uninteresting_hashes.txt", | 436 "/storage/emulated/legacy/skiabot/skia_tmp_dir/uninteresting_hashes.txt", |
454 "--writePath", | 437 "--writePath", |
455 "/storage/emulated/legacy/skiabot/skia_dm", | 438 "/storage/emulated/legacy/skiabot/skia_dm", |
456 "--nocpu", | 439 "--nocpu", |
457 "--dummy-flags" | 440 "--dummy-flags" |
458 ], | 441 ], |
459 "cwd": "[SLAVE_BUILD]", | |
460 "env": { | 442 "env": { |
461 "ANDROID_HOME": "/b/android-sdk-linux", | 443 "ANDROID_HOME": "/b/android-sdk-linux", |
462 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", | 444 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", |
463 "BUILDTYPE": "Release", | 445 "BUILDTYPE": "Release", |
464 "CHROME_HEADLESS": "1", | 446 "CHROME_HEADLESS": "1", |
465 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 447 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
466 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 448 "PATH": "[CWD]/depot_tools:%(PATH)s", |
467 "SKIA_ANDROID_VERBOSE_SETUP": "1", | 449 "SKIA_ANDROID_VERBOSE_SETUP": "1", |
468 "SKIA_OUT": "[SLAVE_BUILD]/out" | 450 "SKIA_OUT": "[CWD]/out" |
469 }, | 451 }, |
470 "name": "dm" | 452 "name": "dm" |
471 }, | 453 }, |
472 { | 454 { |
473 "cmd": [ | 455 "cmd": [ |
474 "[SLAVE_BUILD]/skia/platform_tools/android/bin/adb_pull_if_needed", | 456 "[CWD]/skia/platform_tools/android/bin/adb_pull_if_needed", |
475 "--verbose", | 457 "--verbose", |
476 "/storage/emulated/legacy/skiabot/skia_dm", | 458 "/storage/emulated/legacy/skiabot/skia_dm", |
477 "[SWARM_OUT_DIR]/dm" | 459 "[SWARM_OUT_DIR]/dm" |
478 ], | 460 ], |
479 "cwd": "[SLAVE_BUILD]", | |
480 "env": { | 461 "env": { |
481 "ANDROID_HOME": "/b/android-sdk-linux", | 462 "ANDROID_HOME": "/b/android-sdk-linux", |
482 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", | 463 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", |
483 "BUILDTYPE": "Release", | 464 "BUILDTYPE": "Release", |
484 "CHROME_HEADLESS": "1", | 465 "CHROME_HEADLESS": "1", |
485 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 466 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
486 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 467 "PATH": "[CWD]/depot_tools:%(PATH)s", |
487 "SKIA_ANDROID_VERBOSE_SETUP": "1", | 468 "SKIA_ANDROID_VERBOSE_SETUP": "1", |
488 "SKIA_OUT": "[SLAVE_BUILD]/out" | 469 "SKIA_OUT": "[CWD]/out" |
489 }, | 470 }, |
490 "name": "pull skia_dm" | 471 "name": "pull skia_dm" |
491 }, | 472 }, |
492 { | 473 { |
493 "cmd": [ | 474 "cmd": [ |
494 "/b/android-sdk-linux/platform-tools/adb", | 475 "/b/android-sdk-linux/platform-tools/adb", |
495 "shell", | 476 "shell", |
496 "dumpsys", | 477 "dumpsys", |
497 "batteryproperties" | 478 "batteryproperties" |
498 ], | 479 ], |
499 "cwd": "[SLAVE_BUILD]", | |
500 "env": { | 480 "env": { |
501 "BUILDTYPE": "Release", | 481 "BUILDTYPE": "Release", |
502 "CHROME_HEADLESS": "1", | 482 "CHROME_HEADLESS": "1", |
503 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 483 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
504 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 484 "PATH": "[CWD]/depot_tools:%(PATH)s", |
505 "SKIA_OUT": "[SLAVE_BUILD]/out" | 485 "SKIA_OUT": "[CWD]/out" |
506 }, | 486 }, |
507 "name": "final battery stats" | 487 "name": "final battery stats" |
508 }, | 488 }, |
509 { | 489 { |
510 "cmd": [ | 490 "cmd": [ |
511 "/b/android-sdk-linux/platform-tools/adb", | 491 "/b/android-sdk-linux/platform-tools/adb", |
512 "reboot" | 492 "reboot" |
513 ], | 493 ], |
514 "cwd": "[SLAVE_BUILD]", | |
515 "env": { | 494 "env": { |
516 "BUILDTYPE": "Release", | 495 "BUILDTYPE": "Release", |
517 "CHROME_HEADLESS": "1", | 496 "CHROME_HEADLESS": "1", |
518 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 497 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
519 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 498 "PATH": "[CWD]/depot_tools:%(PATH)s", |
520 "SKIA_OUT": "[SLAVE_BUILD]/out" | 499 "SKIA_OUT": "[CWD]/out" |
521 }, | 500 }, |
522 "name": "reboot" | 501 "name": "reboot" |
523 }, | 502 }, |
524 { | 503 { |
525 "cmd": [ | 504 "cmd": [ |
526 "sleep", | 505 "sleep", |
527 "10" | 506 "10" |
528 ], | 507 ], |
529 "cwd": "[SLAVE_BUILD]", | |
530 "env": { | 508 "env": { |
531 "BUILDTYPE": "Release", | 509 "BUILDTYPE": "Release", |
532 "CHROME_HEADLESS": "1", | 510 "CHROME_HEADLESS": "1", |
533 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 511 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
534 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 512 "PATH": "[CWD]/depot_tools:%(PATH)s", |
535 "SKIA_OUT": "[SLAVE_BUILD]/out" | 513 "SKIA_OUT": "[CWD]/out" |
536 }, | 514 }, |
537 "name": "wait for reboot" | 515 "name": "wait for reboot" |
538 }, | 516 }, |
539 { | 517 { |
540 "cmd": [ | 518 "cmd": [ |
541 "[SLAVE_BUILD]/skia/platform_tools/android/bin/adb_wait_for_device" | 519 "[CWD]/skia/platform_tools/android/bin/adb_wait_for_device" |
542 ], | 520 ], |
543 "cwd": "[SLAVE_BUILD]", | |
544 "env": { | 521 "env": { |
545 "ANDROID_HOME": "/b/android-sdk-linux", | 522 "ANDROID_HOME": "/b/android-sdk-linux", |
546 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", | 523 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", |
547 "BUILDTYPE": "Release", | 524 "BUILDTYPE": "Release", |
548 "CHROME_HEADLESS": "1", | 525 "CHROME_HEADLESS": "1", |
549 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 526 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
550 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 527 "PATH": "[CWD]/depot_tools:%(PATH)s", |
551 "SKIA_ANDROID_VERBOSE_SETUP": "1", | 528 "SKIA_ANDROID_VERBOSE_SETUP": "1", |
552 "SKIA_OUT": "[SLAVE_BUILD]/out" | 529 "SKIA_OUT": "[CWD]/out" |
553 }, | 530 }, |
554 "name": "wait for device (2)" | 531 "name": "wait for device (2)" |
555 }, | 532 }, |
556 { | 533 { |
557 "cmd": [ | 534 "cmd": [ |
558 "[SLAVE_BUILD]/skia/platform_tools/android/bin/adb_wait_for_charge" | 535 "[CWD]/skia/platform_tools/android/bin/adb_wait_for_charge" |
559 ], | 536 ], |
560 "cwd": "[SLAVE_BUILD]", | |
561 "env": { | 537 "env": { |
562 "ANDROID_HOME": "/b/android-sdk-linux", | 538 "ANDROID_HOME": "/b/android-sdk-linux", |
563 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", | 539 "ANDROID_SDK_ROOT": "/b/android-sdk-linux", |
564 "BUILDTYPE": "Release", | 540 "BUILDTYPE": "Release", |
565 "CHROME_HEADLESS": "1", | 541 "CHROME_HEADLESS": "1", |
566 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", | 542 "GYP_DEFINES": "skia_arch_type=arm skia_warnings_as_errors=0", |
567 "PATH": "[SLAVE_BUILD]/depot_tools:%(PATH)s", | 543 "PATH": "[CWD]/depot_tools:%(PATH)s", |
568 "SKIA_ANDROID_VERBOSE_SETUP": "1", | 544 "SKIA_ANDROID_VERBOSE_SETUP": "1", |
569 "SKIA_OUT": "[SLAVE_BUILD]/out" | 545 "SKIA_OUT": "[CWD]/out" |
570 }, | 546 }, |
571 "name": "wait for charge (2)" | 547 "name": "wait for charge (2)" |
572 }, | 548 }, |
573 { | 549 { |
574 "name": "$result", | 550 "name": "$result", |
575 "recipe_result": null, | 551 "recipe_result": null, |
576 "status_code": 0 | 552 "status_code": 0 |
577 } | 553 } |
578 ] | 554 ] |
OLD | NEW |