OLD | NEW |
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 // TODO(nweiz): This is under lib so that it can be used by the unittest dummy | 5 // TODO(nweiz): This is under lib so that it can be used by the unittest dummy |
6 // package. Once that package is no longer being updated, move this back into | 6 // package. Once that package is no longer being updated, move this back into |
7 // bin. | 7 // bin. |
8 library test.executable; | 8 library test.executable; |
9 | 9 |
10 import 'dart:async'; | 10 import 'dart:async'; |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 | 313 |
314 mergeStreams(paths.map((path) { | 314 mergeStreams(paths.map((path) { |
315 if (new Directory(path).existsSync()) return loader.loadDir(path); | 315 if (new Directory(path).existsSync()) return loader.loadDir(path); |
316 if (new File(path).existsSync()) return loader.loadFile(path); | 316 if (new File(path).existsSync()) return loader.loadFile(path); |
317 | 317 |
318 return new Stream.fromIterable([ | 318 return new Stream.fromIterable([ |
319 new LoadSuite("loading $path", () => | 319 new LoadSuite("loading $path", () => |
320 throw new LoadException(path, 'Does not exist.')) | 320 throw new LoadException(path, 'Does not exist.')) |
321 ]); | 321 ]); |
322 })).listen((loadSuite) { | 322 })).listen((loadSuite) { |
323 group.add(new Future.sync(() async { | 323 group.add(new Future.sync(() { |
324 engine.suiteSink.add(loadSuite); | 324 engine.suiteSink.add(loadSuite.changeSuite((suite) { |
325 | 325 if (pattern == null) return suite; |
326 var suite = await loadSuite.suite; | 326 return suite.change( |
327 if (suite == null) return; | |
328 if (pattern != null) { | |
329 suite = suite.change( | |
330 tests: suite.tests.where((test) => test.name.contains(pattern))); | 327 tests: suite.tests.where((test) => test.name.contains(pattern))); |
331 } | 328 })); |
332 | |
333 engine.suiteSink.add(suite); | |
334 })); | 329 })); |
335 }, onError: (error, stackTrace) { | 330 }, onError: (error, stackTrace) { |
336 group.add(new Future.error(error, stackTrace)); | 331 group.add(new Future.error(error, stackTrace)); |
337 }, onDone: group.close); | 332 }, onDone: group.close); |
338 | 333 |
339 await group.future; | 334 await group.future; |
340 | 335 |
341 // Once we've loaded all the suites, notify the engine that no more will be | 336 // Once we've loaded all the suites, notify the engine that no more will be |
342 // coming. | 337 // coming. |
343 engine.suiteSink.close(); | 338 engine.suiteSink.close(); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 if (description is! Map) return false; | 409 if (description is! Map) return false; |
415 var path = description["path"]; | 410 var path = description["path"]; |
416 if (path is! String) return false; | 411 if (path is! String) return false; |
417 | 412 |
418 print("$version (from $path)"); | 413 print("$version (from $path)"); |
419 return true; | 414 return true; |
420 | 415 |
421 default: return false; | 416 default: return false; |
422 } | 417 } |
423 } | 418 } |
OLD | NEW |