OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 scheduled_process_test; | 5 library scheduled_process_test; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:convert'; | 8 import 'dart:convert'; |
9 import 'dart:io'; | 9 import 'dart:io'; |
10 | 10 |
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 }); | 358 }); |
359 } | 359 } |
360 | 360 |
361 ScheduledProcess startDartProcess(String script) { | 361 ScheduledProcess startDartProcess(String script) { |
362 var tempDir = schedule(() => Directory.systemTemp | 362 var tempDir = schedule(() => Directory.systemTemp |
363 .createTemp('scheduled_process_test_') | 363 .createTemp('scheduled_process_test_') |
364 .then((dir) => dir.path), | 364 .then((dir) => dir.path), |
365 'create temp dir'); | 365 'create temp dir'); |
366 var dartPath = schedule(() { | 366 var dartPath = schedule(() { |
367 return tempDir.then((dir) { | 367 return tempDir.then((dir) { |
368 var utilsPath = path.absolute(path.join(Platform.script, 'utils.dart')); | |
369 return new File(path.join(dir, 'test.dart')).writeAsString(''' | 368 return new File(path.join(dir, 'test.dart')).writeAsString(''' |
370 import 'dart:async'; | 369 import 'dart:async'; |
371 import 'dart:convert'; | 370 import 'dart:convert'; |
372 import 'dart:io'; | 371 import 'dart:io'; |
373 | 372 |
374 var stdinLines = stdin | 373 var stdinLines = stdin |
375 .transform(UTF8.decoder) | 374 .transform(UTF8.decoder) |
376 .transform(new LineSplitter()); | 375 .transform(new LineSplitter()); |
377 | 376 |
378 void main() { | 377 void main() { |
379 $script | 378 $script |
380 } | 379 } |
381 ''').then((file) => file.path); | 380 ''').then((file) => file.path); |
382 }); | 381 }); |
383 }, 'write script file'); | 382 }, 'write script file'); |
384 | 383 |
385 currentSchedule.onComplete.schedule(() { | 384 currentSchedule.onComplete.schedule(() { |
386 return tempDir.catchError((_) => null).then((dir) { | 385 return tempDir.catchError((_) => null).then((dir) { |
387 if (dir == null) return null; | 386 if (dir == null) return null; |
388 return new Directory(dir).delete(recursive: true); | 387 return new Directory(dir).delete(recursive: true); |
389 }); | 388 }); |
390 }, 'clean up temp dir'); | 389 }, 'clean up temp dir'); |
391 | 390 |
392 return new ScheduledProcess.start(Platform.executable, | 391 return new ScheduledProcess.start(Platform.executable, |
393 ['--checked', dartPath]); | 392 ['--checked', dartPath]); |
394 } | 393 } |
OLD | NEW |