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

Side by Side Diff: pkg/smoke/test/codegen/generator_test.dart

Issue 194813007: Add codegen support in smoke (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/smoke/test/codegen/end_to_end_test.dart ('k') | pkg/smoke/test/codegen/recorder_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 library smoke.test.codegen.generator_test;
6
7 import 'package:smoke/codegen/generator.dart';
8 import 'package:unittest/unittest.dart';
9
10 import 'common.dart' show checkResults;
11
12 main() {
13 test('getters', () {
14 var generator = new SmokeCodeGenerator();
15 generator.addGetter('i');
16 checkResults(generator, initCall:
17 'useGeneratedCode(new StaticConfiguration(\n'
18 ' checkedMode: false,\n'
19 ' getters: {\n'
20 ' #i: (o) => o.i,\n'
21 ' }));\n');
22
23 generator.addGetter('foo');
24 checkResults(generator, initCall:
25 'useGeneratedCode(new StaticConfiguration(\n'
26 ' checkedMode: false,\n'
27 ' getters: {\n'
28 ' #foo: (o) => o.foo,\n'
29 ' #i: (o) => o.i,\n'
30 ' }));\n');
31 });
32
33 test('setters', () {
34 var generator = new SmokeCodeGenerator();
35 generator.addSetter('i');
36 checkResults(generator, initCall:
37 'useGeneratedCode(new StaticConfiguration(\n'
38 ' checkedMode: false,\n'
39 ' setters: {\n'
40 ' #i: (o, v) { o.i = v; },\n'
41 ' }));\n');
42
43 generator.addSetter('foo');
44 checkResults(generator, initCall:
45 'useGeneratedCode(new StaticConfiguration(\n'
46 ' checkedMode: false,\n'
47 ' setters: {\n'
48 ' #foo: (o, v) { o.foo = v; },\n'
49 ' #i: (o, v) { o.i = v; },\n'
50 ' }));\n');
51 });
52
53 test('names/symbols', () {
54 var generator = new SmokeCodeGenerator();
55 generator.addSymbol('i');
56 generator.addSymbol('foo');
57 checkResults(generator, initCall:
58 'useGeneratedCode(new StaticConfiguration(\n'
59 ' checkedMode: false,\n'
60 ' names: {\n'
61 ' #foo: \'foo\',\n'
62 ' #i: \'i\',\n'
63 ' }));\n');
64 });
65
66 test('getters, setters, and names', () {
67 var generator = new SmokeCodeGenerator();
68 generator.addGetter('i');
69 generator.addSetter('i');
70 generator.addSetter('foo');
71 generator.addSymbol('foo');
72 checkResults(generator, initCall:
73 'useGeneratedCode(new StaticConfiguration(\n'
74 ' checkedMode: false,\n'
75 ' getters: {\n'
76 ' #i: (o) => o.i,\n'
77 ' },\n'
78 ' setters: {\n'
79 ' #foo: (o, v) { o.foo = v; },\n'
80 ' #i: (o, v) { o.i = v; },\n'
81 ' },\n'
82 ' names: {\n'
83 ' #foo: \'foo\',\n'
84 ' }));\n');
85 });
86
87 test('parents', () {
88 var generator = new SmokeCodeGenerator();
89 generator.addParent(new TypeIdentifier('a.dart', 'A'),
90 new TypeIdentifier('b.dart', 'B'));
91 generator.addParent(new TypeIdentifier('a.dart', 'C'),
92 new TypeIdentifier('a.dart', 'A'));
93 checkResults(generator,
94 imports: [
95 "import 'a.dart' as smoke_0;",
96 "import 'b.dart' as smoke_1;"
97 ],
98 initCall:
99 'useGeneratedCode(new StaticConfiguration(\n'
100 ' checkedMode: false,\n'
101 ' parents: {\n'
102 ' smoke_0.A: smoke_1.B,\n'
103 ' smoke_0.C: smoke_0.A,\n'
104 ' }));\n');
105 });
106
107 test('declarations', () {
108 var generator = new SmokeCodeGenerator();
109 generator.addDeclaration(new TypeIdentifier('a.dart', 'A'), 'foo',
110 new TypeIdentifier('dart:core', 'int'), isField: true, isFinal: true);
111 generator.addDeclaration(new TypeIdentifier('a.dart', 'A'), 'bar',
112 new TypeIdentifier('dart:core', 'Function'), isMethod: true,
113 annotations: [new ConstExpression.constructor(null, 'Annotation',
114 [new ConstExpression.string("hi")], const {})]);
115 checkResults(generator,
116 imports: ["import 'a.dart' as smoke_0;"],
117 initCall:
118 'useGeneratedCode(new StaticConfiguration(\n'
119 ' checkedMode: false,\n'
120 ' declarations: {\n'
121 ' smoke_0.A: {\n'
122 ' #bar: const Declaration(#bar, Function, kind: METHOD, '
123 'annotations: const [const Annotation(\'hi\')]),\n'
124 ' #foo: const Declaration(#foo, int, isFinal: true),\n'
125 ' },\n'
126 ' }));\n');
127 });
128
129 test('repeated entries appear only once', () {
130 var generator = new SmokeCodeGenerator();
131 generator.addGetter('a');
132 generator.addGetter('a');
133 generator.addSetter('b');
134 generator.addSetter('b');
135 generator.addSymbol('d');
136 generator.addSymbol('d');
137 generator.addSymbol('c');
138 generator.addSymbol('c');
139 generator.addSymbol('c');
140
141 generator.addParent(new TypeIdentifier('a.dart', 'C'),
142 new TypeIdentifier('a.dart', 'A'));
143 generator.addParent(new TypeIdentifier('a.dart', 'C'),
144 new TypeIdentifier('a.dart', 'A'));
145 generator.addParent(new TypeIdentifier('a.dart', 'C'),
146 new TypeIdentifier('a.dart', 'A'));
147
148 generator.addDeclaration(new TypeIdentifier('a.dart', 'A'), 'foo',
149 new TypeIdentifier('dart:core', 'int'), isField: true, isFinal: true);
150 generator.addDeclaration(new TypeIdentifier('a.dart', 'A'), 'foo',
151 new TypeIdentifier('dart:core', 'int'), isField: true, isFinal: true);
152 generator.addDeclaration(new TypeIdentifier('a.dart', 'A'), 'foo',
153 new TypeIdentifier('dart:core', 'int'), isField: true, isFinal: true);
154
155 checkResults(generator,
156 imports: [
157 "import 'a.dart' as smoke_0;",
158 ],
159 initCall:
160 'useGeneratedCode(new StaticConfiguration(\n'
161 ' checkedMode: false,\n'
162 ' getters: {\n'
163 ' #a: (o) => o.a,\n'
164 ' },\n'
165 ' setters: {\n'
166 ' #b: (o, v) { o.b = v; },\n'
167 ' },\n'
168 ' parents: {\n'
169 ' smoke_0.C: smoke_0.A,\n'
170 ' },\n'
171 ' declarations: {\n'
172 ' smoke_0.A: {\n'
173 ' #foo: const Declaration(#foo, int, isFinal: true),\n'
174 ' },\n'
175 ' },\n'
176 ' names: {\n'
177 ' #c: \'c\',\n'
178 ' #d: \'d\',\n'
179 ' }));\n');
180 });
181 }
OLDNEW
« no previous file with comments | « pkg/smoke/test/codegen/end_to_end_test.dart ('k') | pkg/smoke/test/codegen/recorder_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698