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

Unified Diff: tools/testing/dart/runtime_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/package_testing_support.dart ('k') | tools/testing/dart/status_expression.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/testing/dart/runtime_configuration.dart
diff --git a/tools/testing/dart/runtime_configuration.dart b/tools/testing/dart/runtime_configuration.dart
index c57ba6584059e4ec1b175808adca40f335f53083..20b991b1a51337512daf3d623f80ee5ce6f1b049 100644
--- a/tools/testing/dart/runtime_configuration.dart
+++ b/tools/testing/dart/runtime_configuration.dart
@@ -2,86 +2,80 @@
// 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 runtime_configuration;
-
-import 'dart:io' show Directory, File;
-
-import 'compiler_configuration.dart' show CommandArtifact;
+import 'dart:io';
+import 'compiler_configuration.dart';
+import 'configuration.dart';
// TODO(ahe): Remove this import, we can precompute all the values required
// from TestSuite once the refactoring is complete.
-import 'test_suite.dart' show TestSuite, TestUtils;
-
-import 'test_runner.dart' show Command, CommandBuilder;
+import 'test_suite.dart';
+import 'test_runner.dart';
/// Describes the commands to run a given test case or its compiled output.
///
/// A single runtime configuration object exists per test suite, and is thus
/// shared between multiple test cases, it should not be mutated after
/// construction.
-//
-// TODO(ahe): I expect this class will become abstract very soon.
-class RuntimeConfiguration {
- // TODO(ahe): Remove this constructor and move the switch to
- // test_options.dart. We probably want to store an instance of
- // [RuntimeConfiguration] in [configuration] there.
- factory RuntimeConfiguration(Map<String, dynamic> configuration) {
- var runtime = configuration['runtime'] as String;
- var useBlobs = configuration['use_blobs'] as bool;
-
- switch (runtime) {
- case 'ContentShellOnAndroid':
- case 'DartiumOnAndroid':
- case 'chrome':
- case 'chromeOnAndroid':
- case 'dartium':
- case 'ff':
- case 'firefox':
- case 'ie11':
- case 'ie10':
- case 'ie9':
- case 'opera':
- case 'safari':
- case 'safarimobilesim':
+abstract class RuntimeConfiguration {
+ factory RuntimeConfiguration(Configuration configuration) {
+ switch (configuration.runtime) {
+ case Runtime.contentShellOnAndroid:
+ case Runtime.dartiumOnAndroid:
+ case Runtime.chrome:
+ case Runtime.chromeOnAndroid:
+ case Runtime.dartium:
+ case Runtime.firefox:
+ case Runtime.ie11:
+ case Runtime.ie10:
+ case Runtime.ie9:
+ case Runtime.opera:
+ case Runtime.safari:
+ case Runtime.safariMobileSim:
// TODO(ahe): Replace this with one or more browser runtimes.
return new DummyRuntimeConfiguration();
- case 'jsshell':
+ case Runtime.jsshell:
return new JsshellRuntimeConfiguration();
- case 'd8':
+ case Runtime.d8:
return new D8RuntimeConfiguration();
- case 'none':
+ case Runtime.none:
return new NoneRuntimeConfiguration();
- case 'vm':
+ case Runtime.vm:
return new StandaloneDartRuntimeConfiguration();
- case 'flutter':
+ case Runtime.flutter:
return new StandaloneFlutterEngineConfiguration();
- case 'dart_precompiled':
- if (configuration['system'] == 'android') {
- return new DartPrecompiledAdbRuntimeConfiguration(useBlobs: useBlobs);
+ case Runtime.dartPrecompiled:
+ if (configuration.system == System.android) {
+ return new DartPrecompiledAdbRuntimeConfiguration(
+ useBlobs: configuration.useBlobs);
+ } else {
+ return new DartPrecompiledRuntimeConfiguration(
+ useBlobs: configuration.useBlobs);
}
- return new DartPrecompiledRuntimeConfiguration(useBlobs: useBlobs);
+ break;
- case 'drt':
+ case Runtime.drt:
return new DrtRuntimeConfiguration();
- case 'self_check':
+ case Runtime.selfCheck:
return new SelfCheckRuntimeConfiguration();
-
- default:
- throw "Unknown runtime '$runtime'";
}
+
+ throw "unreachable";
}
RuntimeConfiguration._subclass();
- int computeTimeoutMultiplier(
- {String mode, bool isChecked: false, bool isReload: false, String arch}) {
+ int timeoutMultiplier(
+ {Mode mode,
+ bool isChecked: false,
+ bool isReload: false,
+ Architecture arch}) {
return 1;
}
@@ -176,25 +170,30 @@ class JsshellRuntimeConfiguration extends CommandLineJavaScriptRuntime {
class DartVmRuntimeConfiguration extends RuntimeConfiguration {
DartVmRuntimeConfiguration() : super._subclass();
- int computeTimeoutMultiplier(
- {String mode, bool isChecked: false, bool isReload: false, String arch}) {
- int multiplier = 1;
+ int timeoutMultiplier(
+ {Mode mode,
+ bool isChecked: false,
+ bool isReload: false,
+ Architecture arch}) {
+ var multiplier = 1;
+
switch (arch) {
- case 'simarm':
- case 'arm':
- case 'simarmv6':
- case 'armv6':
- case ' simarmv5te':
- case 'armv5te':
- case 'simmips':
- case 'mips':
- case 'simarm64':
- case 'simdbc':
- case 'simdbc64':
+ case Architecture.simarm:
+ case Architecture.arm:
+ case Architecture.simarmv6:
+ case Architecture.armv6:
+ case Architecture.simarmv5te:
+ case Architecture.armv5te:
+ case Architecture.simmips:
+ case Architecture.mips:
+ case Architecture.simarm64:
+ case Architecture.simdbc:
+ case Architecture.simdbc64:
multiplier *= 4;
break;
}
- if (mode == 'debug') {
+
+ if (mode.isDebug) {
multiplier *= 2;
if (isReload) {
multiplier *= 2;
@@ -207,14 +206,17 @@ class DartVmRuntimeConfiguration extends RuntimeConfiguration {
/// Runtime configuration for Content Shell. We previously used a similar
/// program named Dump Render Tree, hence the name.
class DrtRuntimeConfiguration extends DartVmRuntimeConfiguration {
- int computeTimeoutMultiplier(
- {String mode, bool isChecked: false, bool isReload: false, String arch}) {
+ int timeoutMultiplier(
+ {Mode mode,
+ bool isChecked: false,
+ bool isReload: false,
+ Architecture arch}) {
return 4 // Allow additional time for browser testing to run.
// TODO(ahe): We might need to distinguish between DRT for running
// JavaScript and Dart code. I'm not convinced the inherited timeout
// multiplier is relevant for JavaScript.
*
- super.computeTimeoutMultiplier(
+ super.timeoutMultiplier(
mode: mode, isChecked: isChecked, isReload: isReload);
}
}
@@ -343,7 +345,7 @@ class SelfCheckRuntimeConfiguration extends DartVmRuntimeConfiguration {
return selfCheckers
.map((String tester) => commandBuilder.getVmBatchCommand(
executable, tester, arguments, environmentOverrides,
- checked: suite.configuration['checked'] as bool))
+ checked: suite.configuration.isChecked))
.toList();
}
« no previous file with comments | « tools/testing/dart/package_testing_support.dart ('k') | tools/testing/dart/status_expression.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698