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

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

Issue 1115453002: Recipes: make cwd default to slave_build (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: rebase Created 5 years, 7 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
OLDNEW
1 [ 1 [
2 { 2 {
3 "cmd": [ 3 "cmd": [
4 "python", 4 "python",
5 "-u", 5 "-u",
6 "[SLAVE_BUILD]/src/build/android/test_runner.py", 6 "[SLAVE_BUILD]/src/build/android/test_runner.py",
7 "gtest", 7 "gtest",
8 "-s", 8 "-s",
9 "example_gtest_suite", 9 "example_gtest_suite",
10 "--enable-platform-mode", 10 "--enable-platform-mode",
(...skipping 10 matching lines...) Expand all
21 "--api-protocol", 21 "--api-protocol",
22 "http", 22 "http",
23 "--device-type", 23 "--device-type",
24 "Android", 24 "Android",
25 "--remote-device-os", 25 "--remote-device-os",
26 "SampleDeviceOS", 26 "SampleDeviceOS",
27 "--trigger", 27 "--trigger",
28 "/path/to/tmp/json", 28 "/path/to/tmp/json",
29 "--verbose" 29 "--verbose"
30 ], 30 ],
31 "cwd": "[SLAVE_BUILD]",
31 "name": "[trigger] example_gtest_suite", 32 "name": "[trigger] example_gtest_suite",
32 "~followup_annotations": [ 33 "~followup_annotations": [
33 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@", 34 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@",
34 "@@@STEP_LOG_LINE@json.output@{@@@", 35 "@@@STEP_LOG_LINE@json.output@{@@@",
35 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 36 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
36 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 37 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
37 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 38 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
38 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 39 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
39 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 40 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
40 "@@@STEP_LOG_LINE@json.output@ }@@@", 41 "@@@STEP_LOG_LINE@json.output@ }@@@",
41 "@@@STEP_LOG_LINE@json.output@ }@@@", 42 "@@@STEP_LOG_LINE@json.output@ }@@@",
42 "@@@STEP_LOG_LINE@json.output@}@@@", 43 "@@@STEP_LOG_LINE@json.output@}@@@",
43 "@@@STEP_LOG_END@json.output@@@" 44 "@@@STEP_LOG_END@json.output@@@"
44 ] 45 ]
45 }, 46 },
46 { 47 {
47 "cmd": [ 48 "cmd": [
48 "python", 49 "python",
49 "-u", 50 "-u",
50 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 51 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
51 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}}", 52 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}}",
52 "[TMP_BASE]/amp_trigger_tmp_1/example_gtest_suite.json" 53 "[TMP_BASE]/amp_trigger_tmp_1/example_gtest_suite.json"
53 ], 54 ],
55 "cwd": "[SLAVE_BUILD]",
54 "name": "[trigger] save example_gtest_suite data" 56 "name": "[trigger] save example_gtest_suite data"
55 }, 57 },
56 { 58 {
57 "cmd": [ 59 "cmd": [
58 "python", 60 "python",
59 "-u", 61 "-u",
60 "[SLAVE_BUILD]/src/build/android/test_runner.py", 62 "[SLAVE_BUILD]/src/build/android/test_runner.py",
61 "uirobot", 63 "uirobot",
62 "--minutes", 64 "--minutes",
63 "5", 65 "5",
(...skipping 13 matching lines...) Expand all
77 "--api-protocol", 79 "--api-protocol",
78 "http", 80 "http",
79 "--device-type", 81 "--device-type",
80 "Android", 82 "Android",
81 "--remote-device-os", 83 "--remote-device-os",
82 "SampleDeviceOS", 84 "SampleDeviceOS",
83 "--trigger", 85 "--trigger",
84 "/path/to/tmp/json", 86 "/path/to/tmp/json",
85 "--verbose" 87 "--verbose"
86 ], 88 ],
89 "cwd": "[SLAVE_BUILD]",
87 "name": "[trigger] example_uirobot_suite", 90 "name": "[trigger] example_uirobot_suite",
88 "~followup_annotations": [ 91 "~followup_annotations": [
89 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@", 92 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@",
90 "@@@STEP_LOG_LINE@json.output@{@@@", 93 "@@@STEP_LOG_LINE@json.output@{@@@",
91 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 94 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
92 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 95 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
93 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 96 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
94 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 97 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
95 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 98 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
96 "@@@STEP_LOG_LINE@json.output@ }@@@", 99 "@@@STEP_LOG_LINE@json.output@ }@@@",
97 "@@@STEP_LOG_LINE@json.output@ }@@@", 100 "@@@STEP_LOG_LINE@json.output@ }@@@",
98 "@@@STEP_LOG_LINE@json.output@}@@@", 101 "@@@STEP_LOG_LINE@json.output@}@@@",
99 "@@@STEP_LOG_END@json.output@@@" 102 "@@@STEP_LOG_END@json.output@@@"
100 ] 103 ]
101 }, 104 },
102 { 105 {
103 "cmd": [ 106 "cmd": [
104 "python", 107 "python",
105 "-u", 108 "-u",
106 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 109 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
107 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}}", 110 "{\"env\": {\"device\": {\"brand\": \"Foo\", \"name\": \"Fone\", \"os_vers ion\": \"1.2.3\"}}}",
108 "[TMP_BASE]/amp_trigger_tmp_1/example_uirobot_suite.json" 111 "[TMP_BASE]/amp_trigger_tmp_1/example_uirobot_suite.json"
109 ], 112 ],
113 "cwd": "[SLAVE_BUILD]",
110 "name": "[trigger] save example_uirobot_suite data" 114 "name": "[trigger] save example_uirobot_suite data"
111 }, 115 },
112 { 116 {
113 "cmd": [ 117 "cmd": [
114 "python", 118 "python",
115 "-u", 119 "-u",
116 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 120 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
117 "[TMP_BASE]/amp_trigger_tmp_1/example_gtest_suite.json", 121 "[TMP_BASE]/amp_trigger_tmp_1/example_gtest_suite.json",
118 "/path/to/tmp/json" 122 "/path/to/tmp/json"
119 ], 123 ],
124 "cwd": "[SLAVE_BUILD]",
120 "name": "[collect] load example_gtest_suite data", 125 "name": "[collect] load example_gtest_suite data",
121 "~followup_annotations": [ 126 "~followup_annotations": [
122 "@@@STEP_LOG_LINE@json.output@{@@@", 127 "@@@STEP_LOG_LINE@json.output@{@@@",
123 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 128 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
124 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 129 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
125 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 130 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
126 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 131 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
127 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 132 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
128 "@@@STEP_LOG_LINE@json.output@ }@@@", 133 "@@@STEP_LOG_LINE@json.output@ }@@@",
129 "@@@STEP_LOG_LINE@json.output@ }@@@", 134 "@@@STEP_LOG_LINE@json.output@ }@@@",
(...skipping 23 matching lines...) Expand all
153 "--api-protocol", 158 "--api-protocol",
154 "http", 159 "http",
155 "--device-type", 160 "--device-type",
156 "Android", 161 "Android",
157 "--collect", 162 "--collect",
158 "[TMP_BASE]/amp_trigger_tmp_1/example_gtest_suite.json", 163 "[TMP_BASE]/amp_trigger_tmp_1/example_gtest_suite.json",
159 "--results-path", 164 "--results-path",
160 "[TMP_BASE]/amp_results_tmp_2/example_gtest_suite/results.zip", 165 "[TMP_BASE]/amp_results_tmp_2/example_gtest_suite/results.zip",
161 "--verbose" 166 "--verbose"
162 ], 167 ],
168 "cwd": "[SLAVE_BUILD]",
163 "name": "[collect] example_gtest_suite", 169 "name": "[collect] example_gtest_suite",
164 "~followup_annotations": [ 170 "~followup_annotations": [
165 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@" 171 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@"
166 ] 172 ]
167 }, 173 },
168 { 174 {
169 "cmd": [ 175 "cmd": [
170 "python", 176 "python",
171 "-u", 177 "-u",
172 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 178 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
173 "[TMP_BASE]/amp_trigger_tmp_1/example_gtest_suite.json", 179 "[TMP_BASE]/amp_trigger_tmp_1/example_gtest_suite.json",
174 "/path/to/tmp/json" 180 "/path/to/tmp/json"
175 ], 181 ],
182 "cwd": "[SLAVE_BUILD]",
176 "name": "[upload logcat] load example_gtest_suite data", 183 "name": "[upload logcat] load example_gtest_suite data",
177 "~followup_annotations": [ 184 "~followup_annotations": [
178 "@@@STEP_LOG_LINE@json.output@{@@@", 185 "@@@STEP_LOG_LINE@json.output@{@@@",
179 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@", 186 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@",
180 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@", 187 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@",
181 "@@@STEP_LOG_LINE@json.output@ }@@@", 188 "@@@STEP_LOG_LINE@json.output@ }@@@",
182 "@@@STEP_LOG_LINE@json.output@}@@@", 189 "@@@STEP_LOG_LINE@json.output@}@@@",
183 "@@@STEP_LOG_END@json.output@@@" 190 "@@@STEP_LOG_END@json.output@@@"
184 ] 191 ]
185 }, 192 },
186 { 193 {
187 "cmd": [ 194 "cmd": [
188 "python", 195 "python",
189 "-u", 196 "-u",
190 "RECIPE_MODULE[zip]/resources/unzip.py" 197 "RECIPE_MODULE[zip]/resources/unzip.py"
191 ], 198 ],
199 "cwd": "[SLAVE_BUILD]",
192 "name": "[upload logcat] unzip results for example_gtest_suite", 200 "name": "[upload logcat] unzip results for example_gtest_suite",
193 "stdin": "{\"output\": \"[TMP_BASE]/amp_results_tmp_2/example_gtest_suite/un zipped_results\", \"use_python_zip\": false, \"zip_file\": \"[TMP_BASE]/amp_resu lts_tmp_2/example_gtest_suite/results.zip\"}" 201 "stdin": "{\"output\": \"[TMP_BASE]/amp_results_tmp_2/example_gtest_suite/un zipped_results\", \"use_python_zip\": false, \"zip_file\": \"[TMP_BASE]/amp_resu lts_tmp_2/example_gtest_suite/results.zip\"}"
194 }, 202 },
195 { 203 {
196 "cmd": [ 204 "cmd": [
197 "python", 205 "python",
198 "-u", 206 "-u",
199 "RECIPE_MODULE[gsutil]/resources/gsutil_wrapper.py", 207 "RECIPE_MODULE[gsutil]/resources/gsutil_wrapper.py",
200 "--", 208 "--",
201 "[DEPOT_TOOLS]/gsutil.py", 209 "[DEPOT_TOOLS]/gsutil.py",
202 "--force-version", 210 "--force-version",
203 "3.25", 211 "3.25",
204 "--", 212 "--",
205 "cp", 213 "cp",
206 "[TMP_BASE]/amp_results_tmp_2/example_gtest_suite/unzipped_results/appurif y_results/logcat.txt", 214 "[TMP_BASE]/amp_results_tmp_2/example_gtest_suite/unzipped_results/appurif y_results/logcat.txt",
207 "gs://chrome-amp-results/logcats/logcat_example_gtest_suite_12345abcde.txt " 215 "gs://chrome-amp-results/logcats/logcat_example_gtest_suite_12345abcde.txt "
208 ], 216 ],
217 "cwd": "[SLAVE_BUILD]",
209 "name": "gsutil [upload logcat] example_gtest_suite", 218 "name": "gsutil [upload logcat] example_gtest_suite",
210 "~followup_annotations": [ 219 "~followup_annotations": [
211 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_gtest_suite_12345abcde.txt@@@" 220 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_gtest_suite_12345abcde.txt@@@"
212 ] 221 ]
213 }, 222 },
214 { 223 {
215 "cmd": [ 224 "cmd": [
216 "python", 225 "python",
217 "-u", 226 "-u",
218 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 227 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
219 "[TMP_BASE]/amp_trigger_tmp_1/example_uirobot_suite.json", 228 "[TMP_BASE]/amp_trigger_tmp_1/example_uirobot_suite.json",
220 "/path/to/tmp/json" 229 "/path/to/tmp/json"
221 ], 230 ],
231 "cwd": "[SLAVE_BUILD]",
222 "name": "[collect] load example_uirobot_suite data", 232 "name": "[collect] load example_uirobot_suite data",
223 "~followup_annotations": [ 233 "~followup_annotations": [
224 "@@@STEP_LOG_LINE@json.output@{@@@", 234 "@@@STEP_LOG_LINE@json.output@{@@@",
225 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@", 235 "@@@STEP_LOG_LINE@json.output@ \"env\": {@@@",
226 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@", 236 "@@@STEP_LOG_LINE@json.output@ \"device\": {@@@",
227 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@", 237 "@@@STEP_LOG_LINE@json.output@ \"brand\": \"Foo\", @@@",
228 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@", 238 "@@@STEP_LOG_LINE@json.output@ \"name\": \"Fone\", @@@",
229 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@", 239 "@@@STEP_LOG_LINE@json.output@ \"os_version\": \"1.2.3\"@@@",
230 "@@@STEP_LOG_LINE@json.output@ }@@@", 240 "@@@STEP_LOG_LINE@json.output@ }@@@",
231 "@@@STEP_LOG_LINE@json.output@ }@@@", 241 "@@@STEP_LOG_LINE@json.output@ }@@@",
(...skipping 23 matching lines...) Expand all
255 "--api-protocol", 265 "--api-protocol",
256 "http", 266 "http",
257 "--device-type", 267 "--device-type",
258 "Android", 268 "Android",
259 "--collect", 269 "--collect",
260 "[TMP_BASE]/amp_trigger_tmp_1/example_uirobot_suite.json", 270 "[TMP_BASE]/amp_trigger_tmp_1/example_uirobot_suite.json",
261 "--results-path", 271 "--results-path",
262 "[TMP_BASE]/amp_results_tmp_2/example_uirobot_suite/results.zip", 272 "[TMP_BASE]/amp_results_tmp_2/example_uirobot_suite/results.zip",
263 "--verbose" 273 "--verbose"
264 ], 274 ],
275 "cwd": "[SLAVE_BUILD]",
265 "name": "[collect] example_uirobot_suite", 276 "name": "[collect] example_uirobot_suite",
266 "~followup_annotations": [ 277 "~followup_annotations": [
267 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@" 278 "@@@STEP_TEXT@on Foo Fone 1.2.3@@@"
268 ] 279 ]
269 }, 280 },
270 { 281 {
271 "cmd": [ 282 "cmd": [
272 "python", 283 "python",
273 "-u", 284 "-u",
274 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", 285 "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n",
275 "[TMP_BASE]/amp_trigger_tmp_1/example_uirobot_suite.json", 286 "[TMP_BASE]/amp_trigger_tmp_1/example_uirobot_suite.json",
276 "/path/to/tmp/json" 287 "/path/to/tmp/json"
277 ], 288 ],
289 "cwd": "[SLAVE_BUILD]",
278 "name": "[upload logcat] load example_uirobot_suite data", 290 "name": "[upload logcat] load example_uirobot_suite data",
279 "~followup_annotations": [ 291 "~followup_annotations": [
280 "@@@STEP_LOG_LINE@json.output@{@@@", 292 "@@@STEP_LOG_LINE@json.output@{@@@",
281 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@", 293 "@@@STEP_LOG_LINE@json.output@ \"test_run\": {@@@",
282 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@", 294 "@@@STEP_LOG_LINE@json.output@ \"test_run_id\": \"12345abcde\"@@@",
283 "@@@STEP_LOG_LINE@json.output@ }@@@", 295 "@@@STEP_LOG_LINE@json.output@ }@@@",
284 "@@@STEP_LOG_LINE@json.output@}@@@", 296 "@@@STEP_LOG_LINE@json.output@}@@@",
285 "@@@STEP_LOG_END@json.output@@@" 297 "@@@STEP_LOG_END@json.output@@@"
286 ] 298 ]
287 }, 299 },
288 { 300 {
289 "cmd": [ 301 "cmd": [
290 "python", 302 "python",
291 "-u", 303 "-u",
292 "RECIPE_MODULE[zip]/resources/unzip.py" 304 "RECIPE_MODULE[zip]/resources/unzip.py"
293 ], 305 ],
306 "cwd": "[SLAVE_BUILD]",
294 "name": "[upload logcat] unzip results for example_uirobot_suite", 307 "name": "[upload logcat] unzip results for example_uirobot_suite",
295 "stdin": "{\"output\": \"[TMP_BASE]/amp_results_tmp_2/example_uirobot_suite/ unzipped_results\", \"use_python_zip\": false, \"zip_file\": \"[TMP_BASE]/amp_re sults_tmp_2/example_uirobot_suite/results.zip\"}" 308 "stdin": "{\"output\": \"[TMP_BASE]/amp_results_tmp_2/example_uirobot_suite/ unzipped_results\", \"use_python_zip\": false, \"zip_file\": \"[TMP_BASE]/amp_re sults_tmp_2/example_uirobot_suite/results.zip\"}"
296 }, 309 },
297 { 310 {
298 "cmd": [ 311 "cmd": [
299 "python", 312 "python",
300 "-u", 313 "-u",
301 "RECIPE_MODULE[gsutil]/resources/gsutil_wrapper.py", 314 "RECIPE_MODULE[gsutil]/resources/gsutil_wrapper.py",
302 "--", 315 "--",
303 "[DEPOT_TOOLS]/gsutil.py", 316 "[DEPOT_TOOLS]/gsutil.py",
304 "--force-version", 317 "--force-version",
305 "3.25", 318 "3.25",
306 "--", 319 "--",
307 "cp", 320 "cp",
308 "[TMP_BASE]/amp_results_tmp_2/example_uirobot_suite/unzipped_results/appur ify_results/logcat.txt", 321 "[TMP_BASE]/amp_results_tmp_2/example_uirobot_suite/unzipped_results/appur ify_results/logcat.txt",
309 "gs://chrome-amp-results/logcats/logcat_example_uirobot_suite_12345abcde.t xt" 322 "gs://chrome-amp-results/logcats/logcat_example_uirobot_suite_12345abcde.t xt"
310 ], 323 ],
324 "cwd": "[SLAVE_BUILD]",
311 "name": "gsutil [upload logcat] example_uirobot_suite", 325 "name": "gsutil [upload logcat] example_uirobot_suite",
312 "~followup_annotations": [ 326 "~followup_annotations": [
313 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_uirobot_suite_12345abcde.txt@@@" 327 "@@@STEP_LINK@logcat@https://storage.cloud.google.com/chrome-amp-results/l ogcats/logcat_example_uirobot_suite_12345abcde.txt@@@"
314 ] 328 ]
315 } 329 }
316 ] 330 ]
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698