Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1385)

Unified Diff: tools/testing/dart/compiler_configuration.dart

Issue 2901923003: Replace the configuration map with a typed object. (Closed)
Patch Set: Revise. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/testing/dart/co19_test_config.dart ('k') | tools/testing/dart/configuration.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/testing/dart/compiler_configuration.dart
diff --git a/tools/testing/dart/compiler_configuration.dart b/tools/testing/dart/compiler_configuration.dart
index e63dbbb38d5390f69cb49d46509a125e5e6338d3..fcdd979305da5cc9f4d20ac0ecf57b714fdbe18d 100644
--- a/tools/testing/dart/compiler_configuration.dart
+++ b/tools/testing/dart/compiler_configuration.dart
@@ -2,14 +2,12 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-library compiler_configuration;
+import 'dart:io';
-import 'dart:io' show Platform;
-
-import 'runtime_configuration.dart' show RuntimeConfiguration;
-import 'runtime_configuration.dart' show DartPrecompiledAdbRuntimeConfiguration;
-import 'test_runner.dart' show Command, CommandBuilder, CompilationCommand;
-import 'test_suite.dart' show TestInformation, TestUtils;
+import 'configuration.dart';
+import 'runtime_configuration.dart';
+import 'test_runner.dart';
+import 'test_suite.dart';
List<String> replaceDartFileWith(List<String> list, String replacement) {
var copy = new List<String>.from(list);
@@ -53,84 +51,70 @@ abstract class CompilerConfiguration {
throw new UnsupportedError("This compiler does not support DFE.");
}
- // TODO(ahe): Remove this constructor and move the switch to
- // test_options.dart. We probably want to store an instance of
- // [CompilerConfiguration] in [configuration] there.
- factory CompilerConfiguration(Map<String, dynamic> configuration) {
- var compiler = configuration['compiler'] as String;
-
- // TODO(ahe): Move these booleans into a struction configuration object
- // which can eventually completely replace the Map-based configuration
- // object.
- var isDebug = (configuration['mode'] as String) == 'debug';
- var isChecked = configuration['checked'] as bool;
- var isStrong = configuration['strong'] as bool;
- var isHostChecked = configuration['host_checked'] as bool;
- var useSdk = configuration['use_sdk'] as bool;
- var isCsp = configuration['csp'] as bool;
- var useBlobs = configuration['use_blobs'] as bool;
- var hotReload = configuration['hot_reload'] as bool;
- var hotReloadRollback = configuration['hot_reload_rollback'] as bool;
- var useFastStartup = configuration['fast_startup'] as bool;
- var useKernelInDart2js = configuration['dart2js_with_kernel'] as bool;
-
- switch (compiler) {
- case 'dart2analyzer':
+ factory CompilerConfiguration(Configuration configuration) {
+ switch (configuration.compiler) {
+ case Compiler.dart2analyzer:
return new AnalyzerCompilerConfiguration(
- isDebug: isDebug,
- isChecked: isChecked,
- isStrong: isStrong,
- isHostChecked: isHostChecked,
- useSdk: useSdk);
- case 'dart2js':
+ isDebug: configuration.mode.isDebug,
+ isChecked: configuration.isChecked,
+ isStrong: configuration.isStrong,
+ isHostChecked: configuration.isHostChecked,
+ useSdk: configuration.useSdk);
+
+ case Compiler.dart2js:
return new Dart2jsCompilerConfiguration(
- isDebug: isDebug,
- isChecked: isChecked,
- isHostChecked: isHostChecked,
- useSdk: useSdk,
- isCsp: isCsp,
- useFastStartup: useFastStartup,
- useKernel: useKernelInDart2js,
- extraDart2jsOptions:
- TestUtils.getExtraOptions(configuration, 'dart2js_options'));
- case 'app_jit':
+ isDebug: configuration.mode.isDebug,
+ isChecked: configuration.isChecked,
+ isHostChecked: configuration.isHostChecked,
+ useSdk: configuration.useSdk,
+ isCsp: configuration.isCsp,
+ useFastStartup: configuration.useFastStartup,
+ useKernel: configuration.useDart2JSWithKernel,
+ extraDart2jsOptions: configuration.dart2jsOptions);
+
+ case Compiler.appJit:
return new AppJitCompilerConfiguration(
- isDebug: isDebug, isChecked: isChecked);
- case 'precompiler':
+ isDebug: configuration.mode.isDebug,
+ isChecked: configuration.isChecked);
+
+ case Compiler.precompiler:
return new PrecompilerCompilerConfiguration(
- isDebug: isDebug,
- isChecked: isChecked,
- arch: configuration['arch'] as String,
- useBlobs: useBlobs,
- isAndroid: configuration['system'] == 'android');
- case 'dartk':
+ isDebug: configuration.mode.isDebug,
+ isChecked: configuration.isChecked,
+ arch: configuration.architecture,
+ useBlobs: configuration.useBlobs,
+ isAndroid: configuration.system == System.android);
+
+ case Compiler.dartk:
return new NoneCompilerConfiguration(
- isDebug: isDebug,
- isChecked: isChecked,
- isHostChecked: isHostChecked,
- useSdk: useSdk,
- hotReload: hotReload,
- hotReloadRollback: hotReloadRollback,
+ isDebug: configuration.mode.isDebug,
+ isChecked: configuration.isChecked,
+ isHostChecked: configuration.isHostChecked,
+ useSdk: configuration.useSdk,
+ hotReload: configuration.hotReload,
+ hotReloadRollback: configuration.hotReloadRollback,
useDfe: true);
- case 'dartkp':
+
+ case Compiler.dartkp:
return new PrecompilerCompilerConfiguration(
- isDebug: isDebug,
- isChecked: isChecked,
- arch: configuration['arch'] as String,
- useBlobs: useBlobs,
- isAndroid: configuration['system'] == 'android',
+ isDebug: configuration.mode.isDebug,
+ isChecked: configuration.isChecked,
+ arch: configuration.architecture,
+ useBlobs: configuration.useBlobs,
+ isAndroid: configuration.system == System.android,
useDfe: true);
- case 'none':
+
+ case Compiler.none:
return new NoneCompilerConfiguration(
- isDebug: isDebug,
- isChecked: isChecked,
- isHostChecked: isHostChecked,
- useSdk: useSdk,
- hotReload: hotReload,
- hotReloadRollback: hotReloadRollback);
- default:
- throw "Unknown compiler '$compiler'";
+ isDebug: configuration.mode.isDebug,
+ isChecked: configuration.isChecked,
+ isHostChecked: configuration.isHostChecked,
+ useSdk: configuration.useSdk,
+ hotReload: configuration.hotReload,
+ hotReloadRollback: configuration.hotReloadRollback);
}
+
+ throw "unreachable";
}
CompilerConfiguration._subclass(
@@ -140,11 +124,8 @@ abstract class CompilerConfiguration {
this.isHostChecked: false,
this.useSdk: false});
- /// Return a multiplier used to give tests longer time to run.
- // TODO(ahe): Convert to getter!
- int computeTimeoutMultiplier() {
- return 1;
- }
+ /// A multiplier used to give tests longer time to run.
+ int get timeoutMultiplier => 1;
// TODO(ahe): It shouldn't be necessary to pass [buildDir] to any of these
// functions. It is fixed for a given configuration.
@@ -430,7 +411,7 @@ class ComposedCompilerConfiguration extends CompilerConfiguration {
static ComposedCompilerConfiguration createDartKPConfiguration(
{bool isChecked,
bool isHostChecked,
- String arch,
+ Architecture arch,
bool useBlobs,
bool isAndroid,
bool useSdk,
@@ -560,8 +541,8 @@ class Dart2jsCompilerConfiguration extends Dart2xCompilerConfiguration {
isHostChecked: isHostChecked,
useSdk: useSdk);
- int computeTimeoutMultiplier() {
- int multiplier = 1;
+ int get timeoutMultiplier {
+ var multiplier = 1;
if (isDebug) multiplier *= 4;
if (isChecked) multiplier *= 2;
if (isHostChecked) multiplier *= 16;
@@ -600,7 +581,7 @@ class Dart2jsCompilerConfiguration extends Dart2xCompilerConfiguration {
}
class PrecompilerCompilerConfiguration extends CompilerConfiguration {
- final String arch;
+ final Architecture arch;
final bool useBlobs;
final bool isAndroid;
final bool useDfe;
@@ -614,8 +595,8 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration {
this.useDfe: false})
: super._subclass(isDebug: isDebug, isChecked: isChecked);
- int computeTimeoutMultiplier() {
- int multiplier = 2;
+ int get timeoutMultiplier {
+ var multiplier = 2;
if (isDebug) multiplier *= 4;
if (isChecked) multiplier *= 2;
return multiplier;
@@ -648,9 +629,9 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration {
Map<String, String> environmentOverrides) {
String exec;
if (isAndroid) {
- if (arch == "arm") {
+ if (arch == Architecture.arm) {
exec = "$buildDir/clang_x86/dart_bootstrap";
- } else if (arch == "arm64") {
+ } else if (arch == Architecture.arm64) {
exec = "$buildDir/clang_x64/dart_bootstrap";
}
} else {
@@ -668,7 +649,7 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration {
} else {
args.add("--snapshot=$tempDir/out.S");
}
- if (isAndroid && arch == 'arm') {
+ if (isAndroid && arch == Architecture.arm) {
args.add('--no-sim-use-hardfp');
}
args.addAll(arguments);
@@ -683,13 +664,13 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration {
CommandBuilder commandBuilder,
List arguments,
Map<String, String> environmentOverrides) {
- String cc, shared, ld_flags;
+ String cc, shared, ldFlags;
if (isAndroid) {
var ndk = "third_party/android_tools/ndk";
String triple;
- if (arch == "arm") {
+ if (arch == Architecture.arm) {
triple = "arm-linux-androideabi";
- } else if (arch == "arm64") {
+ } else if (arch == Architecture.arm64) {
triple = "aarch64-linux-android";
}
String host;
@@ -707,36 +688,37 @@ class PrecompilerCompilerConfiguration extends CompilerConfiguration {
cc = 'clang';
shared = '-dynamiclib';
// Tell Mac linker to give up generating eh_frame from dwarf.
- ld_flags = '-Wl,-no_compact_unwind';
+ ldFlags = '-Wl,-no_compact_unwind';
} else {
throw "Platform not supported: ${Platform.operatingSystem}";
}
- String cc_flags;
- if (arch == 'x64') {
- cc_flags = "-m64";
- } else if (arch == 'simarm64') {
- cc_flags = "-m64";
- } else if (arch == 'ia32') {
- cc_flags = "-m32";
- } else if (arch == 'simarm') {
- cc_flags = "-m32";
- } else if (arch == 'simmips') {
- cc_flags = "-m32";
- } else if (arch == 'arm') {
- cc_flags = null;
- } else if (arch == 'arm64') {
- cc_flags = null;
- } else if (arch == 'mips') {
- cc_flags = "-EL";
- } else {
- throw "Architecture not supported: $arch";
+ String ccFlags;
+ switch (arch) {
+ case Architecture.x64:
+ case Architecture.simarm64:
+ ccFlags = "-m64";
+ break;
+ case Architecture.ia32:
+ case Architecture.simarm:
+ case Architecture.simmips:
+ ccFlags = "-m32";
+ break;
+ case Architecture.arm:
+ case Architecture.arm64:
+ ccFlags = null;
+ break;
+ case Architecture.mips:
+ ccFlags = "-EL";
+ break;
+ default:
+ throw "Architecture not supported: ${arch.name}";
}
var exec = cc;
var args = <String>[];
- if (cc_flags != null) args.add(cc_flags);
- if (ld_flags != null) args.add(ld_flags);
+ if (ccFlags != null) args.add(ccFlags);
+ if (ldFlags != null) args.add(ldFlags);
args.add(shared);
args.add('-nostdlib');
args.add('-o');
@@ -824,8 +806,8 @@ class AppJitCompilerConfiguration extends CompilerConfiguration {
AppJitCompilerConfiguration({bool isDebug, bool isChecked})
: super._subclass(isDebug: isDebug, isChecked: isChecked);
- int computeTimeoutMultiplier() {
- int multiplier = 1;
+ int get timeoutMultiplier {
+ var multiplier = 1;
if (isDebug) multiplier *= 2;
if (isChecked) multiplier *= 2;
return multiplier;
@@ -909,9 +891,7 @@ class AnalyzerCompilerConfiguration extends CompilerConfiguration {
isHostChecked: isHostChecked,
useSdk: useSdk);
- int computeTimeoutMultiplier() {
- return 4;
- }
+ int get timeoutMultiplier => 4;
String computeCompilerPath(String buildDir) {
var prefix = 'sdk/bin';
« no previous file with comments | « tools/testing/dart/co19_test_config.dart ('k') | tools/testing/dart/configuration.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698