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

Side by Side Diff: tests/compiler/dart2js/serialization_analysis_test.dart

Issue 1870133002: Refactor serialization test files. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Fix 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
« no previous file with comments | « no previous file | tests/compiler/dart2js/serialization_impact_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
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.serialization_analysis_test; 5 library dart2js.serialization_analysis_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'package:async_helper/async_helper.dart'; 8 import 'package:async_helper/async_helper.dart';
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 import 'package:compiler/src/commandline_options.dart'; 10 import 'package:compiler/src/commandline_options.dart';
11 import 'package:compiler/src/common/backend_api.dart'; 11 import 'package:compiler/src/common/backend_api.dart';
12 import 'package:compiler/src/common/names.dart'; 12 import 'package:compiler/src/common/names.dart';
13 import 'package:compiler/src/compiler.dart'; 13 import 'package:compiler/src/compiler.dart';
14 import 'package:compiler/src/filenames.dart'; 14 import 'package:compiler/src/filenames.dart';
15 import 'memory_compiler.dart'; 15 import 'memory_compiler.dart';
16 import 'serialization_helper.dart'; 16 import 'serialization_helper.dart';
17 17 import 'serialization_test_data.dart';
18 const List<Test> TESTS = const <Test>[
19 const Test(const {
20 'main.dart': 'main() {}'
21 }),
22
23 const Test(const {
24 'main.dart': 'main() => print("Hello World");'
25 }),
26
27 const Test(const {
28 'main.dart': 'main() => print("Hello World", 0);'
29 },
30 expectedWarningCount: 1,
31 expectedInfoCount: 1),
32
33 const Test(const {
34 'main.dart': r'''
35 main() {
36 String text = "Hello World";
37 print('$text');
38 }'''
39 }),
40
41 const Test(const {
42 'main.dart': r'''
43 main() {
44 String text = "Hello World";
45 print('$text', text);
46 }'''
47 },
48 expectedWarningCount: 1,
49 expectedInfoCount: 1),
50
51 const Test(const {
52 'main.dart': r'''
53 main(List<String> arguments) {
54 print(arguments);
55 }'''
56 }),
57
58 const Test(const {
59 'main.dart': r'''
60 main(List<String> arguments) {
61 for (int i = 0; i < arguments.length; i++) {
62 print(arguments[i]);
63 }
64 }'''
65 }),
66
67 const Test(const {
68 'main.dart': r'''
69 main(List<String> arguments) {
70 for (String argument in arguments) {
71 print(argument);
72 }
73 }'''
74 }),
75
76 const Test(const {
77 'main.dart': r'''
78 class Class {}
79 main() {
80 print(new Class());
81 }'''
82 }),
83
84 const Test(const {
85 'main.dart': r'''
86 class Class implements Function {}
87 main() {
88 print(new Class());
89 }'''
90 },
91 expectedWarningCount: 1),
92
93 const Test(const {
94 'main.dart': r'''
95 class Class implements Function {
96 call() {}
97 }
98 main() {
99 print(new Class()());
100 }'''
101 }),
102
103 const Test(const {
104 'main.dart': r'''
105 class Class implements Comparable<Class> {
106 int compareTo(Class other) => 0;
107 }
108 main() {
109 print(new Class());
110 }'''
111 }),
112
113 const Test(const {
114 'main.dart': r'''
115 class Class implements Comparable<Class, Class> {
116 int compareTo(other) => 0;
117 }
118 main() {
119 print(new Class());
120 }'''
121 },
122 expectedWarningCount: 1),
123
124 const Test(const {
125 'main.dart': r'''
126 class Class implements Comparable<Class> {
127 int compareTo(String other) => 0;
128 }
129 main() {
130 print(new Class().compareTo(null));
131 }'''
132 },
133 expectedWarningCount: 1,
134 expectedInfoCount: 1),
135
136 const Test(const {
137 'main.dart': r'''
138 class Class implements Comparable {
139 bool compareTo(a, b) => true;
140 }
141 main() {
142 print(new Class().compareTo(null, null));
143 }'''
144 },
145 expectedWarningCount: 1,
146 expectedInfoCount: 1),
147
148 const Test(const {
149 'main.dart': r'''
150 import 'dart:math';
151
152 class MyRandom implements Random {
153 int nextInt(int max) {
154 return max.length;
155 }
156 bool nextBool() => true;
157 double nextDouble() => 0.0;
158 }
159 main() {
160 new MyRandom().nextInt(0);
161 }'''
162 },
163 expectedWarningCount: 1,
164 expectedInfoCount: 0),
165
166 const Test(const {
167 'main.dart': r'''
168 import 'dart:math';
169
170 class MyRandom implements Random {
171 int nextInt(int max) {
172 return max.length;
173 }
174 bool nextBool() => true;
175 double nextDouble() => 0.0;
176 }
177 main() {
178 new MyRandom();
179 }'''
180 }),
181
182 const Test(const {
183 'main.dart': r'''
184 import 'dart:math';
185
186 class MyRandom implements Random {
187 int nextInt(int max) {
188 return max.length;
189 }
190 bool nextBool() => true;
191 double nextDouble() => 0.0;
192 }
193 main() {
194 // Invocation of `MyRandom.nextInt` is only detected knowing the actual
195 // implementation class for `List` and the world impact of its `shuffle`
196 // method.
197 [].shuffle(new MyRandom());
198 }'''
199 },
200 expectedWarningCount: 1,
201 expectedInfoCount: 0),
202 ];
203 18
204 main(List<String> arguments) { 19 main(List<String> arguments) {
205 asyncTest(() async { 20 asyncTest(() async {
206 String serializedData = await serializeDartCore(); 21 String serializedData = await serializeDartCore();
207 22
208 if (arguments.isNotEmpty) { 23 if (arguments.isNotEmpty) {
209 Uri entryPoint = Uri.base.resolve(nativeToUriPath(arguments.last)); 24 Uri entryPoint = Uri.base.resolve(nativeToUriPath(arguments.last));
210 await analyze(serializedData, entryPoint, null); 25 await analyze(serializedData, entryPoint, null);
211 } else { 26 } else {
212 Uri entryPoint = Uri.parse('memory:main.dart'); 27 Uri entryPoint = Uri.parse('memory:main.dart');
213 for (Test test in TESTS) { 28 for (Test test in TESTS) {
214 await analyze(serializedData, entryPoint, test); 29 await analyze(serializedData, entryPoint, test);
215 } 30 }
216 } 31 }
217 }); 32 });
218 } 33 }
219 34
220 class Test {
221 final Map sourceFiles;
222 final int expectedErrorCount;
223 final int expectedWarningCount;
224 final int expectedHintCount;
225 final int expectedInfoCount;
226
227 const Test(this.sourceFiles, {
228 this.expectedErrorCount: 0,
229 this.expectedWarningCount: 0,
230 this.expectedHintCount: 0,
231 this.expectedInfoCount: 0});
232 }
233
234 Future analyze(String serializedData, Uri entryPoint, Test test) async { 35 Future analyze(String serializedData, Uri entryPoint, Test test) async {
235 DiagnosticCollector diagnosticCollector = new DiagnosticCollector(); 36 DiagnosticCollector diagnosticCollector = new DiagnosticCollector();
236 await runCompiler( 37 await runCompiler(
237 entryPoint: entryPoint, 38 entryPoint: entryPoint,
238 memorySourceFiles: test != null ? test.sourceFiles : const {}, 39 memorySourceFiles: test != null ? test.sourceFiles : const {},
239 options: [Flags.analyzeOnly], 40 options: [Flags.analyzeOnly],
240 diagnosticHandler: diagnosticCollector, 41 diagnosticHandler: diagnosticCollector,
241 beforeRun: (Compiler compiler) { 42 beforeRun: (Compiler compiler) {
242 deserialize(compiler, serializedData); 43 deserialize(compiler, serializedData);
243 }); 44 });
244 if (test != null) { 45 if (test != null) {
245 Expect.equals(test.expectedErrorCount, diagnosticCollector.errors.length, 46 Expect.equals(test.expectedErrorCount, diagnosticCollector.errors.length,
246 "Unexpected error count."); 47 "Unexpected error count.");
247 Expect.equals( 48 Expect.equals(
248 test.expectedWarningCount, 49 test.expectedWarningCount,
249 diagnosticCollector.warnings.length, 50 diagnosticCollector.warnings.length,
250 "Unexpected warning count."); 51 "Unexpected warning count.");
251 Expect.equals(test.expectedHintCount, diagnosticCollector.hints.length, 52 Expect.equals(test.expectedHintCount, diagnosticCollector.hints.length,
252 "Unexpected hint count."); 53 "Unexpected hint count.");
253 Expect.equals(test.expectedInfoCount, diagnosticCollector.infos.length, 54 Expect.equals(test.expectedInfoCount, diagnosticCollector.infos.length,
254 "Unexpected info count."); 55 "Unexpected info count.");
255 } 56 }
256 } 57 }
257 58
OLDNEW
« no previous file with comments | « no previous file | tests/compiler/dart2js/serialization_impact_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698