| Index: tools/testing/dart/compiler_configuration.dart
|
| diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
|
| index 1be5f2bcbe1d9d44e7ce110c6d339dfd76799c28..4cfdbb933f0de7cbc6ccdbd4c657e8540ff32fc7 100644
|
| --- a/tools/testing/dart/compiler_configuration.dart
|
| +++ b/tools/testing/dart/compiler_configuration.dart
|
| @@ -6,6 +6,7 @@ import 'dart:io';
|
|
|
| import 'command.dart';
|
| import 'configuration.dart';
|
| +import 'path.dart';
|
| import 'runtime_configuration.dart';
|
| import 'test_suite.dart';
|
| import 'utils.dart';
|
| @@ -73,6 +74,13 @@ abstract class CompilerConfiguration {
|
| useKernel: configuration.useDart2JSWithKernel,
|
| extraDart2jsOptions: configuration.dart2jsOptions);
|
|
|
| + case Compiler.dartdevc:
|
| + return new DartdevcCompilerConfiguration(
|
| + isDebug: configuration.mode.isDebug,
|
| + isChecked: configuration.isChecked,
|
| + isHostChecked: configuration.isHostChecked);
|
| + break;
|
| +
|
| case Compiler.appJit:
|
| return new AppJitCompilerConfiguration(
|
| isDebug: configuration.mode.isDebug,
|
| @@ -480,11 +488,11 @@ class Dart2xCompilerConfiguration extends CompilerConfiguration {
|
| return Command.compilation(
|
| moniker,
|
| outputFileName,
|
| - !useSdk,
|
| bootstrapDependencies(buildDir),
|
| computeCompilerPath(buildDir),
|
| arguments,
|
| - environmentOverrides);
|
| + environmentOverrides,
|
| + alwaysCompile: !useSdk);
|
| }
|
|
|
| List<Uri> bootstrapDependencies(String buildDir) {
|
| @@ -556,6 +564,54 @@ class Dart2jsCompilerConfiguration extends Dart2xCompilerConfiguration {
|
| }
|
| }
|
|
|
| +/// Configuration for dart2js compiler.
|
| +class DartdevcCompilerConfiguration extends CompilerConfiguration {
|
| + DartdevcCompilerConfiguration(
|
| + {bool isDebug, bool isChecked, bool isHostChecked})
|
| + : super._subclass(
|
| + isDebug: isDebug,
|
| + isChecked: isChecked,
|
| + isHostChecked: isHostChecked,
|
| + useSdk: true);
|
| +
|
| + String computeCompilerPath(String buildDir) {
|
| + return "$buildDir/dart-sdk/bin/dartdevc$executableScriptSuffix";
|
| + }
|
| +
|
| + CommandArtifact computeCompilationArtifact(String buildDir, String tempDir,
|
| + List<String> arguments, Map<String, String> environmentOverrides) {
|
| + // TODO(rnystrom): There is a lot of overlap between this code and
|
| + // _dartdevcCompileCommand() in test_suite.dart. This code path is only hit
|
| + // when the test is expected to have a compile error. Consider refactoring
|
| + // to unify the two (and likewise for dart2js).
|
| +
|
| + // TODO(rnystrom): Are there other arguments here that we need to keep?
|
| + // What about arguments specified in the test itself?
|
| + var inputFile = arguments.last;
|
| +
|
| + var compilerArguments = [
|
| + "--dart-sdk",
|
| + "$buildDir/dart-sdk",
|
| + "--library-root",
|
| + new Path(inputFile).directoryPath.toString(),
|
| + "-o",
|
| + "$tempDir/out.js",
|
| + inputFile
|
| + ];
|
| +
|
| + var command = Command.compilation(
|
| + Compiler.dartdevc.name,
|
| + "$tempDir/out.js",
|
| + bootstrapDependencies(buildDir),
|
| + computeCompilerPath(buildDir),
|
| + compilerArguments,
|
| + environmentOverrides);
|
| +
|
| + return new CommandArtifact(
|
| + [command], "$tempDir/out.js", "application/javascript");
|
| + }
|
| +}
|
| +
|
| class PrecompilerCompilerConfiguration extends CompilerConfiguration {
|
| final Architecture arch;
|
| final bool useBlobs;
|
| @@ -622,8 +678,9 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration {
|
| }
|
| args.addAll(arguments);
|
|
|
| - return Command.compilation('precompiler', tempDir, !useSdk,
|
| - bootstrapDependencies(buildDir), exec, args, environmentOverrides);
|
| + return Command.compilation('precompiler', tempDir,
|
| + bootstrapDependencies(buildDir), exec, args, environmentOverrides,
|
| + alwaysCompile: !useSdk);
|
| }
|
|
|
| Command computeAssembleCommand(String tempDir, String buildDir,
|
| @@ -689,8 +746,9 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration {
|
| args.add('$tempDir/out.aotsnapshot');
|
| args.add('$tempDir/out.S');
|
|
|
| - return Command.compilation('assemble', tempDir, !useSdk,
|
| - bootstrapDependencies(buildDir), exec, args, environmentOverrides);
|
| + return Command.compilation('assemble', tempDir,
|
| + bootstrapDependencies(buildDir), exec, args, environmentOverrides,
|
| + alwaysCompile: !useSdk);
|
| }
|
|
|
| // This step reduces the amount of space needed to run the precompilation
|
| @@ -700,8 +758,9 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration {
|
| var exec = 'rm';
|
| var args = ['$tempDir/out.S'];
|
|
|
| - return Command.compilation('remove_assembly', tempDir, !useSdk,
|
| - bootstrapDependencies(buildDir), exec, args, environmentOverrides);
|
| + return Command.compilation('remove_assembly', tempDir,
|
| + bootstrapDependencies(buildDir), exec, args, environmentOverrides,
|
| + alwaysCompile: !useSdk);
|
| }
|
|
|
| List<String> filterVmOptions(List<String> vmOptions) {
|
| @@ -783,8 +842,9 @@ class AppJitCompilerConfiguration extends CompilerConfiguration {
|
| var args = ["--snapshot=$snapshot", "--snapshot-kind=app-jit"];
|
| args.addAll(arguments);
|
|
|
| - return Command.compilation('app_jit', tempDir, !useSdk,
|
| - bootstrapDependencies(buildDir), exec, args, environmentOverrides);
|
| + return Command.compilation('app_jit', tempDir,
|
| + bootstrapDependencies(buildDir), exec, args, environmentOverrides,
|
| + alwaysCompile: !useSdk);
|
| }
|
|
|
| List<String> computeCompilerArguments(
|
|
|