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

Side by Side Diff: pkg/analyzer2dart/test/sexpr_data.dart

Issue 669673006: Add SExpression test and share tests between dart2dart and analyzer2dart. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments. Created 6 years, 1 month 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 | « pkg/analyzer2dart/test/output_helper.dart ('k') | pkg/analyzer2dart/test/sexpr_test.dart » ('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 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 /// Test data for sexpr_test.
6 library test.sexpr.data;
7
8 import 'test_helper.dart';
9
10 const List<Group> TEST_DATA = const [
11 const Group('Empty main', const [
12 const TestSpec('''
13 main() {}
14 ''', '''
15 (FunctionDefinition main ( return)
16 (LetPrim v0 (Constant NullConstant))
17 (InvokeContinuation return v0))
18 '''),
19
20 const TestSpec('''
21 foo() {}
22 main() {
23 foo();
24 }
25 ''', '''
26 (FunctionDefinition main ( return)
27 (LetCont (k0 v0)
28 (LetPrim v1 (Constant NullConstant))
29 (InvokeContinuation return v1))
30 (InvokeStatic foo k0))
31 ''')
32 ]),
33
34 const Group('Literals', const [
35 const TestSpec('''
36 main() {
37 return 0;
38 }
39 ''', '''
40 (FunctionDefinition main ( return)
41 (LetPrim v0 (Constant IntConstant(0)))
42 (InvokeContinuation return v0))
43 '''),
44
45 const TestSpec('''
46 main() {
47 return 1.5;
48 }
49 ''', '''
50 (FunctionDefinition main ( return)
51 (LetPrim v0 (Constant DoubleConstant(1.5)))
52 (InvokeContinuation return v0))
53 '''),
54
55 const TestSpec('''
56 main() {
57 return true;
58 }
59 ''', '''
60 (FunctionDefinition main ( return)
61 (LetPrim v0 (Constant BoolConstant(true)))
62 (InvokeContinuation return v0))
63 '''),
64
65 const TestSpec('''
66 main() {
67 return false;
68 }
69 ''', '''
70 (FunctionDefinition main ( return)
71 (LetPrim v0 (Constant BoolConstant(false)))
72 (InvokeContinuation return v0))
73 '''),
74
75 const TestSpec('''
76 main() {
77 return "a";
78 }
79 ''', '''
80 (FunctionDefinition main ( return)
81 (LetPrim v0 (Constant StringConstant("a")))
82 (InvokeContinuation return v0))
83 '''),
84 ]),
85
86 const Group('Parameters', const [
87 const TestSpec('''
88 main(args) {}
89 ''', '''
90 (FunctionDefinition main (args return)
91 (LetPrim v0 (Constant NullConstant))
92 (InvokeContinuation return v0))
93 '''),
94
95 const TestSpec('''
96 main(a, b) {}
97 ''', '''
98 (FunctionDefinition main (a b return)
99 (LetPrim v0 (Constant NullConstant))
100 (InvokeContinuation return v0))
101 '''),
102 ]),
103
104 const Group('Pass arguments', const [
105 const TestSpec('''
106 foo(a) {}
107 main() {
108 foo(null);
109 }
110 ''', '''
111 (FunctionDefinition main ( return)
112 (LetPrim v0 (Constant NullConstant))
113 (LetCont (k0 v1)
114 (LetPrim v2 (Constant NullConstant))
115 (InvokeContinuation return v2))
116 (InvokeStatic foo v0 k0))
117 '''),
118
119 const TestSpec('''
120 bar(b, c) {}
121 foo(a) {}
122 main() {
123 foo(null);
124 bar(0, "");
125 }
126 ''', '''
127 (FunctionDefinition main ( return)
128 (LetPrim v0 (Constant NullConstant))
129 (LetCont (k0 v1)
130 (LetPrim v2 (Constant IntConstant(0)))
131 (LetPrim v3 (Constant StringConstant("")))
132 (LetCont (k1 v4)
133 (LetPrim v5 (Constant NullConstant))
134 (InvokeContinuation return v5))
135 (InvokeStatic bar v2 v3 k1))
136 (InvokeStatic foo v0 k0))
137 '''),
138
139 const TestSpec('''
140 foo(a) {}
141 main() {
142 return foo(null);
143 }
144 ''', '''
145 (FunctionDefinition main ( return)
146 (LetPrim v0 (Constant NullConstant))
147 (LetCont (k0 v1)
148 (InvokeContinuation return v1))
149 (InvokeStatic foo v0 k0))
150 '''),
151 ]),
152
153 const Group('Local variables', const [
154 const TestSpec('''
155 main() {
156 var a;
157 return a;
158 }
159 ''', '''
160 (FunctionDefinition main ( return)
161 (LetPrim v0 (Constant NullConstant))
162 (InvokeContinuation return v0))
163 '''),
164
165 const TestSpec('''
166 main() {
167 var a = 0;
168 return a;
169 }
170 ''', '''
171 (FunctionDefinition main ( return)
172 (LetPrim v0 (Constant IntConstant(0)))
173 (InvokeContinuation return v0))
174 '''),
175
176 const TestSpec('''
177 main(a) {
178 return a;
179 }
180 ''', '''
181 (FunctionDefinition main (a return)
182 (InvokeContinuation return a))
183 '''),
184 ]),
185
186 const Group('Dynamic access', const [
187 const TestSpec('''
188 main(a) {
189 return a.foo;
190 }
191 ''', '''
192 (FunctionDefinition main (a return)
193 (LetCont (k0 v0)
194 (InvokeContinuation return v0))
195 (InvokeMethod a foo k0))
196 '''),
197
198 const TestSpec('''
199 main() {
200 var a = "";
201 return a.foo;
202 }
203 ''', '''
204 (FunctionDefinition main ( return)
205 (LetPrim v0 (Constant StringConstant("")))
206 (LetCont (k0 v1)
207 (InvokeContinuation return v1))
208 (InvokeMethod v0 foo k0))
209 '''),
210 ]),
211
212 const Group('Dynamic invocation', const [
213 const TestSpec('''
214 main(a) {
215 return a.foo(0);
216 }
217 ''', '''
218 (FunctionDefinition main (a return)
219 (LetPrim v0 (Constant IntConstant(0)))
220 (LetCont (k0 v1)
221 (InvokeContinuation return v1))
222 (InvokeMethod a foo v0 k0))
223 '''),
224
225 const TestSpec('''
226 main() {
227 var a = "";
228 return a.foo(0, 1);
229 }
230 ''', '''
231 (FunctionDefinition main ( return)
232 (LetPrim v0 (Constant StringConstant("")))
233 (LetPrim v1 (Constant IntConstant(0)))
234 (LetPrim v2 (Constant IntConstant(1)))
235 (LetCont (k0 v3)
236 (InvokeContinuation return v3))
237 (InvokeMethod v0 foo v1 v2 k0))
238 '''),
239 ]),
240
241 const Group('Binary expressions', const [
242 const TestSpec('''
243 main() {
244 return 0 + "";
245 }
246 ''', '''
247 (FunctionDefinition main ( return)
248 (LetPrim v0 (Constant IntConstant(0)))
249 (LetPrim v1 (Constant StringConstant("")))
250 (LetCont (k0 v2)
251 (InvokeContinuation return v2))
252 (InvokeMethod v0 + v1 k0))
253 '''),
254
255 const TestSpec('''
256 main() {
257 return 0 - "";
258 }
259 ''', '''
260 (FunctionDefinition main ( return)
261 (LetPrim v0 (Constant IntConstant(0)))
262 (LetPrim v1 (Constant StringConstant("")))
263 (LetCont (k0 v2)
264 (InvokeContinuation return v2))
265 (InvokeMethod v0 - v1 k0))
266 '''),
267
268 const TestSpec('''
269 main() {
270 return 0 * "";
271 }
272 ''', '''
273 (FunctionDefinition main ( return)
274 (LetPrim v0 (Constant IntConstant(0)))
275 (LetPrim v1 (Constant StringConstant("")))
276 (LetCont (k0 v2)
277 (InvokeContinuation return v2))
278 (InvokeMethod v0 * v1 k0))
279 '''),
280
281 const TestSpec('''
282 main() {
283 return 0 / "";
284 }
285 ''', '''
286 (FunctionDefinition main ( return)
287 (LetPrim v0 (Constant IntConstant(0)))
288 (LetPrim v1 (Constant StringConstant("")))
289 (LetCont (k0 v2)
290 (InvokeContinuation return v2))
291 (InvokeMethod v0 / v1 k0))
292 '''),
293
294 const TestSpec('''
295 main() {
296 return 0 ~/ "";
297 }
298 ''', '''
299 (FunctionDefinition main ( return)
300 (LetPrim v0 (Constant IntConstant(0)))
301 (LetPrim v1 (Constant StringConstant("")))
302 (LetCont (k0 v2)
303 (InvokeContinuation return v2))
304 (InvokeMethod v0 ~/ v1 k0))
305 '''),
306
307 const TestSpec('''
308 main() {
309 return 0 < "";
310 }
311 ''', '''
312 (FunctionDefinition main ( return)
313 (LetPrim v0 (Constant IntConstant(0)))
314 (LetPrim v1 (Constant StringConstant("")))
315 (LetCont (k0 v2)
316 (InvokeContinuation return v2))
317 (InvokeMethod v0 < v1 k0))
318 '''),
319
320 const TestSpec('''
321 main() {
322 return 0 <= "";
323 }
324 ''', '''
325 (FunctionDefinition main ( return)
326 (LetPrim v0 (Constant IntConstant(0)))
327 (LetPrim v1 (Constant StringConstant("")))
328 (LetCont (k0 v2)
329 (InvokeContinuation return v2))
330 (InvokeMethod v0 <= v1 k0))
331 '''),
332
333 const TestSpec('''
334 main() {
335 return 0 > "";
336 }
337 ''', '''
338 (FunctionDefinition main ( return)
339 (LetPrim v0 (Constant IntConstant(0)))
340 (LetPrim v1 (Constant StringConstant("")))
341 (LetCont (k0 v2)
342 (InvokeContinuation return v2))
343 (InvokeMethod v0 > v1 k0))
344 '''),
345
346 const TestSpec('''
347 main() {
348 return 0 >= "";
349 }
350 ''', '''
351 (FunctionDefinition main ( return)
352 (LetPrim v0 (Constant IntConstant(0)))
353 (LetPrim v1 (Constant StringConstant("")))
354 (LetCont (k0 v2)
355 (InvokeContinuation return v2))
356 (InvokeMethod v0 >= v1 k0))
357 '''),
358
359 const TestSpec('''
360 main() {
361 return 0 << "";
362 }
363 ''', '''
364 (FunctionDefinition main ( return)
365 (LetPrim v0 (Constant IntConstant(0)))
366 (LetPrim v1 (Constant StringConstant("")))
367 (LetCont (k0 v2)
368 (InvokeContinuation return v2))
369 (InvokeMethod v0 << v1 k0))
370 '''),
371
372 const TestSpec('''
373 main() {
374 return 0 >> "";
375 }
376 ''', '''
377 (FunctionDefinition main ( return)
378 (LetPrim v0 (Constant IntConstant(0)))
379 (LetPrim v1 (Constant StringConstant("")))
380 (LetCont (k0 v2)
381 (InvokeContinuation return v2))
382 (InvokeMethod v0 >> v1 k0))
383 '''),
384
385 const TestSpec('''
386 main() {
387 return 0 & "";
388 }
389 ''', '''
390 (FunctionDefinition main ( return)
391 (LetPrim v0 (Constant IntConstant(0)))
392 (LetPrim v1 (Constant StringConstant("")))
393 (LetCont (k0 v2)
394 (InvokeContinuation return v2))
395 (InvokeMethod v0 & v1 k0))
396 '''),
397
398 const TestSpec('''
399 main() {
400 return 0 | "";
401 }
402 ''', '''
403 (FunctionDefinition main ( return)
404 (LetPrim v0 (Constant IntConstant(0)))
405 (LetPrim v1 (Constant StringConstant("")))
406 (LetCont (k0 v2)
407 (InvokeContinuation return v2))
408 (InvokeMethod v0 | v1 k0))
409 '''),
410
411 const TestSpec('''
412 main() {
413 return 0 ^ "";
414 }
415 ''', '''
416 (FunctionDefinition main ( return)
417 (LetPrim v0 (Constant IntConstant(0)))
418 (LetPrim v1 (Constant StringConstant("")))
419 (LetCont (k0 v2)
420 (InvokeContinuation return v2))
421 (InvokeMethod v0 ^ v1 k0))
422 '''),
423
424 const TestSpec('''
425 main() {
426 return 0 == "";
427 }
428 ''', '''
429 (FunctionDefinition main ( return)
430 (LetPrim v0 (Constant IntConstant(0)))
431 (LetPrim v1 (Constant StringConstant("")))
432 (LetCont (k0 v2)
433 (InvokeContinuation return v2))
434 (InvokeMethod v0 == v1 k0))
435 '''),
436
437 const TestSpec('''
438 main() {
439 return 0 != "";
440 }
441 ''', '''
442 (FunctionDefinition main ( return)
443 (LetPrim v0 (Constant IntConstant(0)))
444 (LetPrim v1 (Constant StringConstant("")))
445 (LetCont (k0 v2)
446 (LetCont (k1 v3)
447 (InvokeContinuation return v3))
448 (LetCont (k2)
449 (LetPrim v4 (Constant BoolConstant(false)))
450 (InvokeContinuation k1 v4))
451 (LetCont (k3)
452 (LetPrim v5 (Constant BoolConstant(true)))
453 (InvokeContinuation k1 v5))
454 (Branch (IsTrue v2) k2 k3))
455 (InvokeMethod v0 == v1 k0))
456 '''),
457
458 const TestSpec('''
459 main() {
460 return 0 && "";
461 }
462 ''', '''
463 (FunctionDefinition main ( return)
464 (LetPrim v0 (Constant IntConstant(0)))
465 (LetCont (k0 v1)
466 (InvokeContinuation return v1))
467 (LetCont (k1)
468 (LetPrim v2 (Constant StringConstant("")))
469 (LetCont (k2)
470 (LetPrim v3 (Constant BoolConstant(true)))
471 (InvokeContinuation k0 v3))
472 (LetCont (k3)
473 (LetPrim v4 (Constant BoolConstant(false)))
474 (InvokeContinuation k0 v4))
475 (Branch (IsTrue v2) k2 k3))
476 (LetCont (k4)
477 (LetPrim v5 (Constant BoolConstant(false)))
478 (InvokeContinuation k0 v5))
479 (Branch (IsTrue v0) k1 k4))
480 '''),
481
482 const TestSpec('''
483 main() {
484 return 0 || "";
485 }
486 ''', '''
487 (FunctionDefinition main ( return)
488 (LetPrim v0 (Constant IntConstant(0)))
489 (LetCont (k0 v1)
490 (InvokeContinuation return v1))
491 (LetCont (k1)
492 (LetPrim v2 (Constant BoolConstant(true)))
493 (InvokeContinuation k0 v2))
494 (LetCont (k2)
495 (LetPrim v3 (Constant StringConstant("")))
496 (LetCont (k3)
497 (LetPrim v4 (Constant BoolConstant(true)))
498 (InvokeContinuation k0 v4))
499 (LetCont (k4)
500 (LetPrim v5 (Constant BoolConstant(false)))
501 (InvokeContinuation k0 v5))
502 (Branch (IsTrue v3) k3 k4))
503 (Branch (IsTrue v0) k1 k2))
504 '''),
505
506 const TestSpec('''
507 main() {
508 return 0 + "" * 2;
509 }
510 ''', '''
511 (FunctionDefinition main ( return)
512 (LetPrim v0 (Constant IntConstant(0)))
513 (LetPrim v1 (Constant StringConstant("")))
514 (LetPrim v2 (Constant IntConstant(2)))
515 (LetCont (k0 v3)
516 (LetCont (k1 v4)
517 (InvokeContinuation return v4))
518 (InvokeMethod v0 + v3 k1))
519 (InvokeMethod v1 * v2 k0))
520 '''),
521
522 const TestSpec('''
523 main() {
524 return 0 * "" + 2;
525 }
526 ''', '''
527 (FunctionDefinition main ( return)
528 (LetPrim v0 (Constant IntConstant(0)))
529 (LetPrim v1 (Constant StringConstant("")))
530 (LetCont (k0 v2)
531 (LetPrim v3 (Constant IntConstant(2)))
532 (LetCont (k1 v4)
533 (InvokeContinuation return v4))
534 (InvokeMethod v2 + v3 k1))
535 (InvokeMethod v0 * v1 k0))
536 '''),
537 ]),
538
539 const Group('If statement', const [
540 const TestSpec('''
541 main(a) {
542 if (a) {
543 print(0);
544 }
545 }
546 ''', '''
547 (FunctionDefinition main (a return)
548 (LetCont (k0)
549 (LetPrim v0 (Constant NullConstant))
550 (InvokeContinuation return v0))
551 (LetCont (k1)
552 (LetPrim v1 (Constant IntConstant(0)))
553 (LetCont (k2 v2)
554 (InvokeContinuation k0 ))
555 (InvokeStatic print v1 k2))
556 (LetCont (k3)
557 (InvokeContinuation k0 ))
558 (Branch (IsTrue a) k1 k3))
559 '''),
560
561 const TestSpec('''
562 main(a) {
563 if (a) {
564 print(0);
565 } else {
566 print(1);
567 }
568 }
569 ''', '''
570 (FunctionDefinition main (a return)
571 (LetCont (k0)
572 (LetPrim v0 (Constant NullConstant))
573 (InvokeContinuation return v0))
574 (LetCont (k1)
575 (LetPrim v1 (Constant IntConstant(0)))
576 (LetCont (k2 v2)
577 (InvokeContinuation k0 ))
578 (InvokeStatic print v1 k2))
579 (LetCont (k3)
580 (LetPrim v3 (Constant IntConstant(1)))
581 (LetCont (k4 v4)
582 (InvokeContinuation k0 ))
583 (InvokeStatic print v3 k4))
584 (Branch (IsTrue a) k1 k3))
585 '''),
586
587 const TestSpec('''
588 main(a) {
589 if (a) {
590 print(0);
591 } else {
592 print(1);
593 print(2);
594 }
595 }
596 ''', '''
597 (FunctionDefinition main (a return)
598 (LetCont (k0)
599 (LetPrim v0 (Constant NullConstant))
600 (InvokeContinuation return v0))
601 (LetCont (k1)
602 (LetPrim v1 (Constant IntConstant(0)))
603 (LetCont (k2 v2)
604 (InvokeContinuation k0 ))
605 (InvokeStatic print v1 k2))
606 (LetCont (k3)
607 (LetPrim v3 (Constant IntConstant(1)))
608 (LetCont (k4 v4)
609 (LetPrim v5 (Constant IntConstant(2)))
610 (LetCont (k5 v6)
611 (InvokeContinuation k0 ))
612 (InvokeStatic print v5 k5))
613 (InvokeStatic print v3 k4))
614 (Branch (IsTrue a) k1 k3))
615 '''),
616 ]),
617
618 const Group('Conditional expression', const [
619 const TestSpec('''
620 main(a) {
621 return a ? print(0) : print(1);
622 }
623 ''', '''
624 (FunctionDefinition main (a return)
625 (LetCont (k0 v0)
626 (InvokeContinuation return v0))
627 (LetCont (k1)
628 (LetPrim v1 (Constant IntConstant(0)))
629 (LetCont (k2 v2)
630 (InvokeContinuation k0 v2))
631 (InvokeStatic print v1 k2))
632 (LetCont (k3)
633 (LetPrim v3 (Constant IntConstant(1)))
634 (LetCont (k4 v4)
635 (InvokeContinuation k0 v4))
636 (InvokeStatic print v3 k4))
637 (Branch (IsTrue a) k1 k3))
638 '''),
639 ]),
640 ];
OLDNEW
« no previous file with comments | « pkg/analyzer2dart/test/output_helper.dart ('k') | pkg/analyzer2dart/test/sexpr_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698