| 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 330 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   341  |   341  | 
|   342 class VmCommand extends ProcessCommand { |   342 class VmCommand extends ProcessCommand { | 
|   343   VmCommand._(String executable, List<String> arguments, |   343   VmCommand._(String executable, List<String> arguments, | 
|   344       Map<String, String> environmentOverrides) |   344       Map<String, String> environmentOverrides) | 
|   345       : super._("vm", executable, arguments, environmentOverrides); |   345       : super._("vm", executable, arguments, environmentOverrides); | 
|   346 } |   346 } | 
|   347  |   347  | 
|   348 class AdbPrecompilationCommand extends Command { |   348 class AdbPrecompilationCommand extends Command { | 
|   349   final String precompiledRunnerFilename; |   349   final String precompiledRunnerFilename; | 
|   350   final String precompiledTestDirectory; |   350   final String precompiledTestDirectory; | 
 |   351   final List<String> arguments; | 
|   351   final bool useBlobs; |   352   final bool useBlobs; | 
|   352  |   353  | 
|   353   AdbPrecompilationCommand._(this.precompiledRunnerFilename, |   354   AdbPrecompilationCommand._(this.precompiledRunnerFilename, | 
|   354                              this.precompiledTestDirectory, |   355                              this.precompiledTestDirectory, | 
 |   356                              this.arguments, | 
|   355                              this.useBlobs) |   357                              this.useBlobs) | 
|   356       : super._("adb_precompilation"); |   358       : super._("adb_precompilation"); | 
|   357  |   359  | 
|   358   void _buildHashCode(HashCodeBuilder builder) { |   360   void _buildHashCode(HashCodeBuilder builder) { | 
|   359     super._buildHashCode(builder); |   361     super._buildHashCode(builder); | 
|   360     builder.add(precompiledRunnerFilename); |   362     builder.add(precompiledRunnerFilename); | 
|   361     builder.add(precompiledTestDirectory); |   363     builder.add(precompiledTestDirectory); | 
 |   364     builder.add(arguments); | 
|   362     builder.add(useBlobs); |   365     builder.add(useBlobs); | 
|   363   } |   366   } | 
|   364  |   367  | 
|   365   bool _equal(AdbPrecompilationCommand other) => |   368   bool _equal(AdbPrecompilationCommand other) => | 
|   366       super._equal(other) && |   369       super._equal(other) && | 
|   367       precompiledRunnerFilename == other.precompiledRunnerFilename && |   370       precompiledRunnerFilename == other.precompiledRunnerFilename && | 
|   368       useBlobs == other.useBlobs && |   371       useBlobs == other.useBlobs && | 
 |   372       arguments == other.arguments && | 
|   369       precompiledTestDirectory == other.precompiledTestDirectory; |   373       precompiledTestDirectory == other.precompiledTestDirectory; | 
|   370  |   374  | 
|   371   String toString() => 'Steps to push precompiled runner and precompiled code ' |   375   String toString() => 'Steps to push precompiled runner and precompiled code ' | 
|   372                        'to an attached device. Uses (and requires) adb.'; |   376                        'to an attached device. Uses (and requires) adb.'; | 
|   373 } |   377 } | 
|   374  |   378  | 
|   375 class JSCommandlineCommand extends ProcessCommand { |   379 class JSCommandlineCommand extends ProcessCommand { | 
|   376   JSCommandlineCommand._( |   380   JSCommandlineCommand._( | 
|   377       String displayName, String executable, List<String> arguments, |   381       String displayName, String executable, List<String> arguments, | 
|   378       [Map<String, String> environmentOverrides = null]) |   382       [Map<String, String> environmentOverrides = null]) | 
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   633   } |   637   } | 
|   634  |   638  | 
|   635   VmCommand getVmCommand(String executable, List<String> arguments, |   639   VmCommand getVmCommand(String executable, List<String> arguments, | 
|   636       Map<String, String> environmentOverrides) { |   640       Map<String, String> environmentOverrides) { | 
|   637     var command = new VmCommand._(executable, arguments, environmentOverrides); |   641     var command = new VmCommand._(executable, arguments, environmentOverrides); | 
|   638     return _getUniqueCommand(command); |   642     return _getUniqueCommand(command); | 
|   639   } |   643   } | 
|   640  |   644  | 
|   641   AdbPrecompilationCommand getAdbPrecompiledCommand(String precompiledRunner, |   645   AdbPrecompilationCommand getAdbPrecompiledCommand(String precompiledRunner, | 
|   642                                                     String testDirectory, |   646                                                     String testDirectory, | 
 |   647                                                     List<String> arguments, | 
|   643                                                     bool useBlobs) { |   648                                                     bool useBlobs) { | 
|   644     var command = new AdbPrecompilationCommand._( |   649     var command = new AdbPrecompilationCommand._( | 
|   645         precompiledRunner, testDirectory, useBlobs); |   650         precompiledRunner, testDirectory, arguments, useBlobs); | 
|   646     return _getUniqueCommand(command); |   651     return _getUniqueCommand(command); | 
|   647   } |   652   } | 
|   648  |   653  | 
|   649   Command getJSCommandlineCommand(String displayName, executable, arguments, |   654   Command getJSCommandlineCommand(String displayName, executable, arguments, | 
|   650       [environment = null]) { |   655       [environment = null]) { | 
|   651     var command = new JSCommandlineCommand._( |   656     var command = new JSCommandlineCommand._( | 
|   652         displayName, executable, arguments, environment); |   657         displayName, executable, arguments, environment); | 
|   653     return _getUniqueCommand(command); |   658     return _getUniqueCommand(command); | 
|   654   } |   659   } | 
|   655  |   660  | 
| (...skipping 1855 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2511       }); |  2516       }); | 
|  2512     } else { |  2517     } else { | 
|  2513       return new RunningProcess(command, timeout).run(); |  2518       return new RunningProcess(command, timeout).run(); | 
|  2514     } |  2519     } | 
|  2515   } |  2520   } | 
|  2516  |  2521  | 
|  2517   Future<CommandOutput> _runAdbPrecompilationCommand( |  2522   Future<CommandOutput> _runAdbPrecompilationCommand( | 
|  2518       AdbDevice device, AdbPrecompilationCommand command, int timeout) async { |  2523       AdbDevice device, AdbPrecompilationCommand command, int timeout) async { | 
|  2519     var runner = command.precompiledRunnerFilename; |  2524     var runner = command.precompiledRunnerFilename; | 
|  2520     var testdir = command.precompiledTestDirectory; |  2525     var testdir = command.precompiledTestDirectory; | 
 |  2526     var arguments = command.arguments; | 
|  2521     var devicedir = '/data/local/tmp/precompilation-testing'; |  2527     var devicedir = '/data/local/tmp/precompilation-testing'; | 
|  2522     var deviceTestDir = '/data/local/tmp/precompilation-testing/test'; |  2528     var deviceTestDir = '/data/local/tmp/precompilation-testing/test'; | 
|  2523  |  2529  | 
|  2524     // We copy all the files which the vm precompiler puts into the test |  2530     // We copy all the files which the vm precompiler puts into the test | 
|  2525     // directory. |  2531     // directory. | 
|  2526     List<String> files = new io.Directory(testdir) |  2532     List<String> files = new io.Directory(testdir) | 
|  2527         .listSync() |  2533         .listSync() | 
|  2528         .where((fse) => fse is io.File) |  2534         .where((fse) => fse is io.File) | 
|  2529         .map((file) => file.path) |  2535         .map((file) => file.path) | 
|  2530         .map((path) => path.substring(path.lastIndexOf('/') + 1)) |  2536         .map((path) => path.substring(path.lastIndexOf('/') + 1)) | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
|  2549  |  2555  | 
|  2550     for (var file in files) { |  2556     for (var file in files) { | 
|  2551       steps.add(() => device.runAdbCommand( |  2557       steps.add(() => device.runAdbCommand( | 
|  2552             ['push', '$testdir/$file', '$deviceTestDir/$file'])); |  2558             ['push', '$testdir/$file', '$deviceTestDir/$file'])); | 
|  2553     } |  2559     } | 
|  2554  |  2560  | 
|  2555     if (command.useBlobs) { |  2561     if (command.useBlobs) { | 
|  2556       steps.add(() => device.runAdbShellCommand( |  2562       steps.add(() => device.runAdbShellCommand( | 
|  2557             ['$devicedir/dart_precompiled_runtime', |  2563             ['$devicedir/dart_precompiled_runtime', | 
|  2558              '--run-app-snapshot=$deviceTestDir', |  2564              '--run-app-snapshot=$deviceTestDir', | 
|  2559              '--use-blobs', 'ignored.dart'], |  2565              '--use-blobs']..addAll(arguments), | 
|  2560             timeout: timeoutDuration)); |  2566             timeout: timeoutDuration)); | 
|  2561     } else { |  2567     } else { | 
|  2562       steps.add(() => device.runAdbShellCommand( |  2568       steps.add(() => device.runAdbShellCommand( | 
|  2563             ['$devicedir/dart_precompiled_runtime', |  2569             ['$devicedir/dart_precompiled_runtime', | 
|  2564              '--run-app-snapshot=$deviceTestDir', |  2570              '--run-app-snapshot=$deviceTestDir' | 
|  2565              'ignored.dart'], |  2571              ]..addAll(arguments), | 
|  2566             timeout: timeoutDuration)); |  2572             timeout: timeoutDuration)); | 
|  2567     } |  2573     } | 
|  2568  |  2574  | 
|  2569     var stopwatch = new Stopwatch()..start(); |  2575     var stopwatch = new Stopwatch()..start(); | 
|  2570     var writer = new StringBuffer(); |  2576     var writer = new StringBuffer(); | 
|  2571  |  2577  | 
|  2572     await device.waitForBootCompleted(); |  2578     await device.waitForBootCompleted(); | 
|  2573     await device.waitForDevice(); |  2579     await device.waitForDevice(); | 
|  2574  |  2580  | 
|  2575     AdbCommandResult result; |  2581     AdbCommandResult result; | 
| (...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3021     } |  3027     } | 
|  3022   } |  3028   } | 
|  3023  |  3029  | 
|  3024   void eventAllTestsDone() { |  3030   void eventAllTestsDone() { | 
|  3025     for (var listener in _eventListener) { |  3031     for (var listener in _eventListener) { | 
|  3026       listener.allDone(); |  3032       listener.allDone(); | 
|  3027     } |  3033     } | 
|  3028     _allDone(); |  3034     _allDone(); | 
|  3029   } |  3035   } | 
|  3030 } |  3036 } | 
| OLD | NEW |