| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 /** | 5 /** |
| 6 * Classes and methods for executing tests. | 6 * Classes and methods for executing tests. |
| 7 * | 7 * |
| 8 * This module includes: | 8 * This module includes: |
| 9 * - Managing parallel execution of tests, including timeout checks. | 9 * - Managing parallel execution of tests, including timeout checks. |
| 10 * - Evaluating the output of each test as pass/fail/crash/timeout. | 10 * - Evaluating the output of each test as pass/fail/crash/timeout. |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 | 283 |
| 284 String get reproductionCommand { | 284 String get reproductionCommand { |
| 285 var parts = [TestUtils.dartTestExecutable.toString(), | 285 var parts = [TestUtils.dartTestExecutable.toString(), |
| 286 'tools/testing/dart/launch_browser.dart', | 286 'tools/testing/dart/launch_browser.dart', |
| 287 browser, | 287 browser, |
| 288 url]; | 288 url]; |
| 289 return parts.map(escapeCommandLineArgument).join(' '); | 289 return parts.map(escapeCommandLineArgument).join(' '); |
| 290 } | 290 } |
| 291 } | 291 } |
| 292 | 292 |
| 293 class BrowserHtmlTestCommand extends BrowserTestCommand { |
| 294 List<String> expectedMessages; |
| 295 BrowserHtmlTestCommand._(String browser, |
| 296 String url, |
| 297 Map configuration, |
| 298 this.expectedMessages) |
| 299 : super._(browser, url, configuration); |
| 300 |
| 301 void _buildHashCode(HashCodeBuilder builder) { |
| 302 super._buildHashCode(builder); |
| 303 builder.addJson(expectedMessages); |
| 304 } |
| 305 |
| 306 bool _equal(BrowserHtmlTestCommand other) => |
| 307 super._equal(other) && |
| 308 identical(expectedMessages, other.expectedMessages); |
| 309 } |
| 310 |
| 293 class AnalysisCommand extends ProcessCommand { | 311 class AnalysisCommand extends ProcessCommand { |
| 294 final String flavor; | 312 final String flavor; |
| 295 | 313 |
| 296 AnalysisCommand._(this.flavor, | 314 AnalysisCommand._(this.flavor, |
| 297 String displayName, | 315 String displayName, |
| 298 String executable, | 316 String executable, |
| 299 List<String> arguments, | 317 List<String> arguments, |
| 300 Map<String, String> environmentOverrides) | 318 Map<String, String> environmentOverrides) |
| 301 : super._(displayName, executable, arguments, environmentOverrides); | 319 : super._(displayName, executable, arguments, environmentOverrides); |
| 302 | 320 |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 return _getUniqueCommand(command); | 564 return _getUniqueCommand(command); |
| 547 } | 565 } |
| 548 | 566 |
| 549 BrowserTestCommand getBrowserTestCommand(String browser, | 567 BrowserTestCommand getBrowserTestCommand(String browser, |
| 550 String url, | 568 String url, |
| 551 Map configuration) { | 569 Map configuration) { |
| 552 var command = new BrowserTestCommand._(browser, url, configuration); | 570 var command = new BrowserTestCommand._(browser, url, configuration); |
| 553 return _getUniqueCommand(command); | 571 return _getUniqueCommand(command); |
| 554 } | 572 } |
| 555 | 573 |
| 574 BrowserHtmlTestCommand getBrowserHtmlTestCommand(String browser, |
| 575 String url, |
| 576 Map configuration, |
| 577 List<String> expectedMessages) { |
| 578 var command = new BrowserHtmlTestCommand._( |
| 579 browser, url, configuration, expectedMessages); |
| 580 return _getUniqueCommand(command); |
| 581 } |
| 582 |
| 556 CompilationCommand getCompilationCommand(String displayName, | 583 CompilationCommand getCompilationCommand(String displayName, |
| 557 outputFile, | 584 outputFile, |
| 558 neverSkipCompilation, | 585 neverSkipCompilation, |
| 559 List<Uri> bootstrapDependencies, | 586 List<Uri> bootstrapDependencies, |
| 560 String executable, | 587 String executable, |
| 561 List<String> arguments, | 588 List<String> arguments, |
| 562 Map<String, String> environment) { | 589 Map<String, String> environment) { |
| 563 var command = | 590 var command = |
| 564 new CompilationCommand._( | 591 new CompilationCommand._( |
| 565 displayName, outputFile, neverSkipCompilation, | 592 displayName, outputFile, neverSkipCompilation, |
| (...skipping 1773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2339 _commandOutputStream.add(output); | 2366 _commandOutputStream.add(output); |
| 2340 if (output.canRunDependendCommands) { | 2367 if (output.canRunDependendCommands) { |
| 2341 graph.changeState(node, dgraph.NodeState.Successful); | 2368 graph.changeState(node, dgraph.NodeState.Successful); |
| 2342 } else { | 2369 } else { |
| 2343 graph.changeState(node, dgraph.NodeState.Failed); | 2370 graph.changeState(node, dgraph.NodeState.Failed); |
| 2344 } | 2371 } |
| 2345 | 2372 |
| 2346 _numProcesses--; | 2373 _numProcesses--; |
| 2347 if (isBrowserCommand) _numBrowserProcesses--; | 2374 if (isBrowserCommand) _numBrowserProcesses--; |
| 2348 | 2375 |
| 2349 // Don't loose a process | 2376 // Don't lose a process |
| 2350 Timer.run(() => _tryRunNextCommand()); | 2377 Timer.run(() => _tryRunNextCommand()); |
| 2351 }); | 2378 }); |
| 2352 } | 2379 } |
| 2353 } | 2380 } |
| 2354 | 2381 |
| 2355 void _checkDone() { | 2382 void _checkDone() { |
| 2356 if (!_finishing && | 2383 if (!_finishing && |
| 2357 _runQueue.isEmpty && | 2384 _runQueue.isEmpty && |
| 2358 _numProcesses == 0 && | 2385 _numProcesses == 0 && |
| 2359 graph.isSealed && | 2386 graph.isSealed && |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2492 } | 2519 } |
| 2493 | 2520 |
| 2494 Future<CommandOutput> _startBrowserControllerTest( | 2521 Future<CommandOutput> _startBrowserControllerTest( |
| 2495 BrowserTestCommand browserCommand, int timeout) { | 2522 BrowserTestCommand browserCommand, int timeout) { |
| 2496 var completer = new Completer<CommandOutput>(); | 2523 var completer = new Completer<CommandOutput>(); |
| 2497 | 2524 |
| 2498 var callback = (BrowserTestOutput output) { | 2525 var callback = (BrowserTestOutput output) { |
| 2499 completer.complete( | 2526 completer.complete( |
| 2500 new BrowserControllerTestOutcome(browserCommand, output)); | 2527 new BrowserControllerTestOutcome(browserCommand, output)); |
| 2501 }; | 2528 }; |
| 2502 BrowserTest browserTest = new BrowserTest(browserCommand.url, | 2529 |
| 2503 callback, | 2530 BrowserTest browserTest; |
| 2504 timeout); | 2531 if (browserCommand is BrowserHtmlTestCommand) { |
| 2532 browserTest = new HtmlTest(browserCommand.url, callback, timeout, |
| 2533 browserCommand.expectedMessages); |
| 2534 } else { |
| 2535 browserTest = new BrowserTest(browserCommand.url, callback, timeout); |
| 2536 } |
| 2505 _getBrowserTestRunner(browserCommand.browser, browserCommand.configuration) | 2537 _getBrowserTestRunner(browserCommand.browser, browserCommand.configuration) |
| 2506 .then((testRunner) { | 2538 .then((testRunner) { |
| 2507 testRunner.queueTest(browserTest); | 2539 testRunner.queueTest(browserTest); |
| 2508 }); | 2540 }); |
| 2509 | 2541 |
| 2510 return completer.future; | 2542 return completer.future; |
| 2511 } | 2543 } |
| 2512 | 2544 |
| 2513 Future<BrowserTestRunner> _getBrowserTestRunner(String browser, | 2545 Future<BrowserTestRunner> _getBrowserTestRunner(String browser, |
| 2514 Map configuration) { | 2546 Map configuration) { |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2908 } | 2940 } |
| 2909 } | 2941 } |
| 2910 | 2942 |
| 2911 void eventAllTestsDone() { | 2943 void eventAllTestsDone() { |
| 2912 for (var listener in _eventListener) { | 2944 for (var listener in _eventListener) { |
| 2913 listener.allDone(); | 2945 listener.allDone(); |
| 2914 } | 2946 } |
| 2915 _allDone(); | 2947 _allDone(); |
| 2916 } | 2948 } |
| 2917 } | 2949 } |
| OLD | NEW |