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

Side by Side Diff: pkg/dev_compiler/test/worker/worker_test.dart

Issue 2833633002: Various DDC fixes for windows (Closed)
Patch Set: Fix formatting Created 3 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 | « pkg/dev_compiler/test/testing.dart ('k') | no next file » | 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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:convert'; 6 import 'dart:convert';
7 import 'dart:io'; 7 import 'dart:io';
8 8
9 import 'package:bazel_worker/bazel_worker.dart'; 9 import 'package:bazel_worker/bazel_worker.dart';
10 // TODO(jakemac): Remove once this is a part of the testing library. 10 // TODO(jakemac): Remove once this is a part of the testing library.
11 import 'package:bazel_worker/src/async_message_grouper.dart'; 11 import 'package:bazel_worker/src/async_message_grouper.dart';
12 import 'package:bazel_worker/testing.dart'; 12 import 'package:bazel_worker/testing.dart';
13 import 'package:path/path.dart' show join, joinAll, toUri;
13 import 'package:test/test.dart'; 14 import 'package:test/test.dart';
14 15
16 File file(String path) => new File(joinAll(path.split('/'))).absolute;
17
15 main() { 18 main() {
19 var dartdevc = join('bin', 'dartdevc.dart');
16 group('Hello World', () { 20 group('Hello World', () {
17 final argsFile = new File('test/worker/hello_world.args').absolute; 21 final argsFile = file('test/worker/hello_world.args');
18 final inputDartFile = new File('test/worker/hello_world.dart').absolute; 22 final inputDartFile = file('test/worker/hello_world.dart');
19 final outputJsFile = new File('test/worker/out/hello_world.js').absolute; 23 final outputJsFile = file('test/worker/out/hello_world.js');
20 final dartSdkSummary = new File('lib/sdk/ddc_sdk.sum').absolute; 24 final dartSdkSummary = file('lib/sdk/ddc_sdk.sum');
21 final executableArgs = ['bin/dartdevc.dart']; 25 final executableArgs = [dartdevc];
22 final compilerArgs = [ 26 final compilerArgs = [
23 '--no-source-map', 27 '--no-source-map',
24 '--no-summarize', 28 '--no-summarize',
25 '--dart-sdk-summary', 29 '--dart-sdk-summary',
26 dartSdkSummary.path, 30 dartSdkSummary.path,
27 '-o', 31 '-o',
28 outputJsFile.path, 32 outputJsFile.path,
29 inputDartFile.path, 33 inputDartFile.path,
30 ]; 34 ];
31 35
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 stderr.addStream(process.stderr); 122 stderr.addStream(process.stderr);
119 var futureProcessOutput = process.stdout.map(UTF8.decode).toList(); 123 var futureProcessOutput = process.stdout.map(UTF8.decode).toList();
120 124
121 expect(await process.exitCode, EXIT_CODE_OK); 125 expect(await process.exitCode, EXIT_CODE_OK);
122 expect((await futureProcessOutput).join(), isEmpty); 126 expect((await futureProcessOutput).join(), isEmpty);
123 expect(outputJsFile.existsSync(), isTrue); 127 expect(outputJsFile.existsSync(), isTrue);
124 }); 128 });
125 }); 129 });
126 130
127 group('Hello World with Summaries', () { 131 group('Hello World with Summaries', () {
128 final greetingDart = new File('test/worker/greeting.dart').absolute; 132 final greetingDart = file('test/worker/greeting.dart');
129 final helloDart = new File('test/worker/hello.dart').absolute; 133 final helloDart = file('test/worker/hello.dart');
130 134
131 final greetingJS = new File('test/worker/greeting.js').absolute; 135 final greetingJS = file('test/worker/greeting.js');
132 final greetingSummary = new File('test/worker/greeting.api.ds').absolute; 136 final greetingSummary = file('test/worker/greeting.api.ds');
133 final helloJS = new File('test/worker/hello_world.js').absolute; 137 final helloJS = file('test/worker/hello_world.js');
134 138
135 final greeting2JS = new File('test/worker/greeting2.js').absolute; 139 final greeting2JS = file('test/worker/greeting2.js');
136 final greeting2Summary = new File('test/worker/greeting2.api.ds').absolute; 140 final greeting2Summary = file('test/worker/greeting2.api.ds');
137 141
138 setUp(() { 142 setUp(() {
139 greetingDart.writeAsStringSync('String greeting = "hello";'); 143 greetingDart.writeAsStringSync('String greeting = "hello";');
140 helloDart.writeAsStringSync('import "greeting.dart";' 144 helloDart.writeAsStringSync('import "greeting.dart";'
141 'main() => print(greeting);'); 145 'main() => print(greeting);');
142 }); 146 });
143 147
144 tearDown(() { 148 tearDown(() {
145 if (greetingDart.existsSync()) greetingDart.deleteSync(); 149 if (greetingDart.existsSync()) greetingDart.deleteSync();
146 if (helloDart.existsSync()) helloDart.deleteSync(); 150 if (helloDart.existsSync()) helloDart.deleteSync();
147 if (greetingJS.existsSync()) greetingJS.deleteSync(); 151 if (greetingJS.existsSync()) greetingJS.deleteSync();
148 if (greetingSummary.existsSync()) greetingSummary.deleteSync(); 152 if (greetingSummary.existsSync()) greetingSummary.deleteSync();
149 if (greeting2JS.existsSync()) greeting2JS.deleteSync(); 153 if (greeting2JS.existsSync()) greeting2JS.deleteSync();
150 if (greeting2Summary.existsSync()) greeting2Summary.deleteSync(); 154 if (greeting2Summary.existsSync()) greeting2Summary.deleteSync();
151 if (helloJS.existsSync()) helloJS.deleteSync(); 155 if (helloJS.existsSync()) helloJS.deleteSync();
152 }); 156 });
153 157
154 test('can compile in basic mode', () { 158 test('can compile in basic mode', () {
155 final dartSdkSummary = new File('lib/sdk/ddc_sdk.sum').absolute; 159 final dartSdkSummary = file('lib/sdk/ddc_sdk.sum');
156 var result = Process.runSync(Platform.executable, [ 160 var result = Process.runSync(Platform.executable, [
157 'bin/dartdevc.dart', 161 dartdevc,
158 '--summary-extension=api.ds', 162 '--summary-extension=api.ds',
159 '--no-source-map', 163 '--no-source-map',
160 '--dart-sdk-summary', 164 '--dart-sdk-summary',
161 dartSdkSummary.path, 165 dartSdkSummary.path,
162 '-o', 166 '-o',
163 greetingJS.path, 167 greetingJS.path,
164 greetingDart.path, 168 greetingDart.path,
165 ]); 169 ]);
166 expect(result.exitCode, EXIT_CODE_OK); 170 expect(result.exitCode, EXIT_CODE_OK);
167 expect(result.stdout, isEmpty); 171 expect(result.stdout, isEmpty);
168 expect(result.stderr, isEmpty); 172 expect(result.stderr, isEmpty);
169 expect(greetingJS.existsSync(), isTrue); 173 expect(greetingJS.existsSync(), isTrue);
170 expect(greetingSummary.existsSync(), isTrue); 174 expect(greetingSummary.existsSync(), isTrue);
171 175
172 result = Process.runSync(Platform.executable, [ 176 result = Process.runSync(Platform.executable, [
173 'bin/dartdevc.dart', 177 dartdevc,
174 '--no-source-map', 178 '--no-source-map',
175 '--no-summarize', 179 '--no-summarize',
176 '--dart-sdk-summary', 180 '--dart-sdk-summary',
177 dartSdkSummary.path, 181 dartSdkSummary.path,
178 '--summary-extension=api.ds', 182 '--summary-extension=api.ds',
179 '-s', 183 '-s',
180 greetingSummary.path, 184 greetingSummary.path,
181 '-o', 185 '-o',
182 helloJS.path, 186 helloJS.path,
183 helloDart.path, 187 helloDart.path,
184 ]); 188 ]);
185 expect(result.exitCode, EXIT_CODE_OK); 189 expect(result.exitCode, EXIT_CODE_OK);
186 expect(result.stdout, isEmpty); 190 expect(result.stdout, isEmpty);
187 expect(result.stderr, isEmpty); 191 expect(result.stderr, isEmpty);
188 expect(helloJS.existsSync(), isTrue); 192 expect(helloJS.existsSync(), isTrue);
189 }); 193 });
190 194
191 test('reports error on overlapping summaries', () { 195 test('reports error on overlapping summaries', () {
192 final dartSdkSummary = new File('lib/sdk/ddc_sdk.sum').absolute; 196 final dartSdkSummary = file('lib/sdk/ddc_sdk.sum');
193 var result = Process.runSync(Platform.executable, [ 197 var result = Process.runSync(Platform.executable, [
194 'bin/dartdevc.dart', 198 dartdevc,
195 '--summary-extension=api.ds', 199 '--summary-extension=api.ds',
196 '--no-source-map', 200 '--no-source-map',
197 '--dart-sdk-summary', 201 '--dart-sdk-summary',
198 dartSdkSummary.path, 202 dartSdkSummary.path,
199 '-o', 203 '-o',
200 greetingJS.path, 204 greetingJS.path,
201 greetingDart.path, 205 greetingDart.path,
202 ]); 206 ]);
203 expect(result.exitCode, EXIT_CODE_OK); 207 expect(result.exitCode, EXIT_CODE_OK);
204 expect(result.stdout, isEmpty); 208 expect(result.stdout, isEmpty);
205 expect(result.stderr, isEmpty); 209 expect(result.stderr, isEmpty);
206 expect(greetingJS.existsSync(), isTrue); 210 expect(greetingJS.existsSync(), isTrue);
207 expect(greetingSummary.existsSync(), isTrue); 211 expect(greetingSummary.existsSync(), isTrue);
208 212
209 result = Process.runSync(Platform.executable, [ 213 result = Process.runSync(Platform.executable, [
210 'bin/dartdevc.dart', 214 dartdevc,
211 '--summary-extension=api.ds', 215 '--summary-extension=api.ds',
212 '--no-source-map', 216 '--no-source-map',
213 '--dart-sdk-summary', 217 '--dart-sdk-summary',
214 dartSdkSummary.path, 218 dartSdkSummary.path,
215 '-o', 219 '-o',
216 greeting2JS.path, 220 greeting2JS.path,
217 greetingDart.path, 221 greetingDart.path,
218 ]); 222 ]);
219 expect(result.exitCode, EXIT_CODE_OK); 223 expect(result.exitCode, EXIT_CODE_OK);
220 expect(result.stdout, isEmpty); 224 expect(result.stdout, isEmpty);
221 expect(result.stderr, isEmpty); 225 expect(result.stderr, isEmpty);
222 expect(greeting2JS.existsSync(), isTrue); 226 expect(greeting2JS.existsSync(), isTrue);
223 expect(greeting2Summary.existsSync(), isTrue); 227 expect(greeting2Summary.existsSync(), isTrue);
224 228
225 result = Process.runSync(Platform.executable, [ 229 result = Process.runSync(Platform.executable, [
226 'bin/dartdevc.dart', 230 dartdevc,
227 '--no-source-map', 231 '--no-source-map',
228 '--no-summarize', 232 '--no-summarize',
229 '--dart-sdk-summary', 233 '--dart-sdk-summary',
230 dartSdkSummary.path, 234 dartSdkSummary.path,
231 '--summary-extension=api.ds', 235 '--summary-extension=api.ds',
232 '-s', 236 '-s',
233 greetingSummary.path, 237 greetingSummary.path,
234 '-s', 238 '-s',
235 greeting2Summary.path, 239 greeting2Summary.path,
236 '-o', 240 '-o',
237 helloJS.path, 241 helloJS.path,
238 helloDart.path, 242 helloDart.path,
239 ]); 243 ]);
240 expect(result.exitCode, 65); 244 expect(result.exitCode, 65);
241 expect(result.stdout, contains("conflict")); 245 expect(result.stdout, contains("conflict"));
242 expect(result.stdout, contains(greetingDart.path)); 246 expect(result.stdout, contains('${toUri(greetingDart.path)}'));
243 expect(helloJS.existsSync(), isFalse); 247 expect(helloJS.existsSync(), isFalse);
244 }); 248 });
245 }); 249 });
246 250
247 group('Error handling', () { 251 group('Error handling', () {
248 final dartSdkSummary = new File('lib/sdk/ddc_sdk.sum').absolute; 252 final dartSdkSummary = file('lib/sdk/ddc_sdk.sum');
249 final badFileDart = new File('test/worker/bad.dart').absolute; 253 final badFileDart = file('test/worker/bad.dart');
250 final badFileJs = new File('test/worker/bad.js').absolute; 254 final badFileJs = file('test/worker/bad.js');
251 255
252 tearDown(() { 256 tearDown(() {
253 if (badFileDart.existsSync()) badFileDart.deleteSync(); 257 if (badFileDart.existsSync()) badFileDart.deleteSync();
254 if (badFileJs.existsSync()) badFileJs.deleteSync(); 258 if (badFileJs.existsSync()) badFileJs.deleteSync();
255 }); 259 });
256 260
257 test('incorrect usage', () { 261 test('incorrect usage', () {
258 var result = Process.runSync(Platform.executable, [ 262 var result = Process.runSync(Platform.executable, [
259 'bin/dartdevc.dart', 263 dartdevc,
260 '--dart-sdk-summary', 264 '--dart-sdk-summary',
261 dartSdkSummary.path, 265 dartSdkSummary.path,
262 'oops', 266 'oops',
263 ]); 267 ]);
264 expect(result.exitCode, 64); 268 expect(result.exitCode, 64);
265 expect( 269 expect(
266 result.stdout, contains('Please include the output file location.')); 270 result.stdout, contains('Please include the output file location.'));
267 expect(result.stdout, isNot(contains('#0'))); 271 expect(result.stdout, isNot(contains('#0')));
268 }); 272 });
269 273
270 test('compile errors', () { 274 test('compile errors', () {
271 badFileDart.writeAsStringSync('main() => "hello world"'); 275 badFileDart.writeAsStringSync('main() => "hello world"');
272 var result = Process.runSync(Platform.executable, [ 276 var result = Process.runSync(Platform.executable, [
273 'bin/dartdevc.dart', 277 dartdevc,
274 '--no-source-map', 278 '--no-source-map',
275 '--dart-sdk-summary', 279 '--dart-sdk-summary',
276 dartSdkSummary.path, 280 dartSdkSummary.path,
277 '-o', 281 '-o',
278 badFileJs.path, 282 badFileJs.path,
279 badFileDart.path, 283 badFileDart.path,
280 ]); 284 ]);
281 expect(result.exitCode, 1); 285 expect(result.exitCode, 1);
282 expect(result.stdout, contains("[error] Expected to find ';'")); 286 expect(result.stdout, contains("[error] Expected to find ';'"));
283 }); 287 });
284 }); 288 });
285 289
286 group('Parts', () { 290 group('Parts', () {
287 final dartSdkSummary = new File('lib/sdk/ddc_sdk.sum').absolute; 291 final dartSdkSummary = file('lib/sdk/ddc_sdk.sum');
288 final partFile = new File('test/worker/greeting.dart').absolute; 292 final partFile = file('test/worker/greeting.dart');
289 final libraryFile = new File('test/worker/hello.dart').absolute; 293 final libraryFile = file('test/worker/hello.dart');
290 294
291 final outJS = new File('test/worker/output.js').absolute; 295 final outJS = file('test/worker/output.js');
292 296
293 setUp(() { 297 setUp(() {
294 partFile.writeAsStringSync('part of hello;\n' 298 partFile.writeAsStringSync('part of hello;\n'
295 'String greeting = "hello";'); 299 'String greeting = "hello";');
296 libraryFile.writeAsStringSync('library hello;\n' 300 libraryFile.writeAsStringSync('library hello;\n'
297 'part "greeting.dart";\n' 301 'part "greeting.dart";\n'
298 'main() => print(greeting);\n'); 302 'main() => print(greeting);\n');
299 }); 303 });
300 304
301 tearDown(() { 305 tearDown(() {
302 if (partFile.existsSync()) partFile.deleteSync(); 306 if (partFile.existsSync()) partFile.deleteSync();
303 if (libraryFile.existsSync()) libraryFile.deleteSync(); 307 if (libraryFile.existsSync()) libraryFile.deleteSync();
304 if (outJS.existsSync()) outJS.deleteSync(); 308 if (outJS.existsSync()) outJS.deleteSync();
305 }); 309 });
306 310
307 test('works if part and library supplied', () { 311 test('works if part and library supplied', () {
308 var result = Process.runSync(Platform.executable, [ 312 var result = Process.runSync(Platform.executable, [
309 'bin/dartdevc.dart', 313 dartdevc,
310 '--no-summarize', 314 '--no-summarize',
311 '--no-source-map', 315 '--no-source-map',
312 '--dart-sdk-summary', 316 '--dart-sdk-summary',
313 dartSdkSummary.path, 317 dartSdkSummary.path,
314 '-o', 318 '-o',
315 outJS.path, 319 outJS.path,
316 partFile.path, 320 partFile.path,
317 libraryFile.path, 321 libraryFile.path,
318 ]); 322 ]);
319 expect(result.stdout, isEmpty); 323 expect(result.stdout, isEmpty);
320 expect(result.stderr, isEmpty); 324 expect(result.stderr, isEmpty);
321 expect(result.exitCode, 0); 325 expect(result.exitCode, 0);
322 expect(outJS.existsSync(), isTrue); 326 expect(outJS.existsSync(), isTrue);
323 }); 327 });
324 328
325 test('works if part is not supplied', () { 329 test('works if part is not supplied', () {
326 var result = Process.runSync(Platform.executable, [ 330 var result = Process.runSync(Platform.executable, [
327 'bin/dartdevc.dart', 331 dartdevc,
328 '--no-summarize', 332 '--no-summarize',
329 '--no-source-map', 333 '--no-source-map',
330 '--dart-sdk-summary', 334 '--dart-sdk-summary',
331 dartSdkSummary.path, 335 dartSdkSummary.path,
332 '-o', 336 '-o',
333 outJS.path, 337 outJS.path,
334 libraryFile.path, 338 libraryFile.path,
335 ]); 339 ]);
336 expect(result.stdout, isEmpty); 340 expect(result.stdout, isEmpty);
337 expect(result.stderr, isEmpty); 341 expect(result.stderr, isEmpty);
338 expect(result.exitCode, 0); 342 expect(result.exitCode, 0);
339 expect(outJS.existsSync(), isTrue); 343 expect(outJS.existsSync(), isTrue);
340 }); 344 });
341 345
342 test('part without library is silently ignored', () { 346 test('part without library is silently ignored', () {
343 var result = Process.runSync(Platform.executable, [ 347 var result = Process.runSync(Platform.executable, [
344 'bin/dartdevc.dart', 348 dartdevc,
345 '--no-summarize', 349 '--no-summarize',
346 '--no-source-map', 350 '--no-source-map',
347 '--dart-sdk-summary', 351 '--dart-sdk-summary',
348 dartSdkSummary.path, 352 dartSdkSummary.path,
349 '-o', 353 '-o',
350 outJS.path, 354 outJS.path,
351 partFile.path, 355 partFile.path,
352 ]); 356 ]);
353 expect(result.stdout, isEmpty); 357 expect(result.stdout, isEmpty);
354 expect(result.stderr, isEmpty); 358 expect(result.stderr, isEmpty);
355 expect(result.exitCode, 0); 359 expect(result.exitCode, 0);
356 expect(outJS.existsSync(), isTrue); 360 expect(outJS.existsSync(), isTrue);
357 }); 361 });
358 }); 362 });
359 } 363 }
360 364
361 Future<WorkResponse> _readResponse(MessageGrouper messageGrouper) async { 365 Future<WorkResponse> _readResponse(MessageGrouper messageGrouper) async {
362 var buffer = (await messageGrouper.next) as List<int>; 366 var buffer = (await messageGrouper.next) as List<int>;
363 try { 367 try {
364 return new WorkResponse.fromBuffer(buffer); 368 return new WorkResponse.fromBuffer(buffer);
365 } catch (_) { 369 } catch (_) {
366 var bufferAsString = 370 var bufferAsString =
367 buffer == null ? '' : 'String: ${UTF8.decode(buffer)}\n'; 371 buffer == null ? '' : 'String: ${UTF8.decode(buffer)}\n';
368 throw 'Failed to parse response:\nbytes: $buffer\n$bufferAsString'; 372 throw 'Failed to parse response:\nbytes: $buffer\n$bufferAsString';
369 } 373 }
370 } 374 }
OLDNEW
« no previous file with comments | « pkg/dev_compiler/test/testing.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698