Add support for a production dart2js mode in test.dart
Change-Id: Ia828cb46106f044313e579f1c4b23ec92c6a2d44
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/96862
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: William Hesse <whesse@google.com>
diff --git a/pkg/smith/lib/configuration.dart b/pkg/smith/lib/configuration.dart
index bfc1447..1b1c268 100644
--- a/pkg/smith/lib/configuration.dart
+++ b/pkg/smith/lib/configuration.dart
@@ -249,6 +249,7 @@
name, architecture, compiler, mode, runtime, system,
builderTag: stringOption("builder-tag"),
vmOptions: stringListOption("vm-options"),
+ dart2jsOptions: stringListOption("dart2js-options"),
timeout: intOption("timeout"),
enableAsserts: boolOption("enable-asserts"),
isChecked: boolOption("checked"),
@@ -287,6 +288,8 @@
final List<String> vmOptions;
+ final List<String> dart2jsOptions;
+
int timeout;
final bool enableAsserts;
@@ -320,6 +323,7 @@
this.runtime, this.system,
{String builderTag,
List<String> vmOptions,
+ List<String> dart2jsOptions,
int timeout,
bool enableAsserts,
bool isChecked,
@@ -335,6 +339,7 @@
bool useSdk})
: builderTag = builderTag ?? "",
vmOptions = vmOptions ?? <String>[],
+ dart2jsOptions = dart2jsOptions ?? <String>[],
timeout = timeout,
enableAsserts = enableAsserts ?? false,
isChecked = isChecked ?? false,
@@ -359,6 +364,7 @@
system == other.system &&
builderTag == other.builderTag &&
vmOptions.join(" & ") == other.vmOptions.join(" & ") &&
+ dart2jsOptions.join(" & ") == other.dart2jsOptions.join(" & ") &&
timeout == other.timeout &&
enableAsserts == other.enableAsserts &&
isChecked == other.isChecked &&
@@ -388,6 +394,7 @@
system.hashCode ^
builderTag.hashCode ^
vmOptions.join(" & ").hashCode ^
+ dart2jsOptions.join(" & ").hashCode ^
timeout.hashCode ^
_toBinary([
enableAsserts,
@@ -418,6 +425,8 @@
if (builderTag != "") fields.add("builder-tag: $builderTag");
if (vmOptions != "") fields.add("vm-options: [${vmOptions.join(", ")}]");
+ if (dart2jsOptions != "")
+ fields.add("dart2js-options: [${dart2jsOptions.join(", ")}]");
if (timeout != 0) fields.add("timeout: $timeout");
if (enableAsserts) fields.add("enable-asserts");
if (isChecked) fields.add("checked");
@@ -459,6 +468,11 @@
var otherTag = "[${other.vmOptions.join(", ")}]";
fields.add("vm-options: $tag $otherTag");
}
+ if (dart2jsOptions != "" || other.dart2jsOptions != "") {
+ var tag = "[${dart2jsOptions.join(", ")}]";
+ var otherTag = "[${other.dart2jsOptions.join(", ")}]";
+ fields.add("dart2js-options: $tag $otherTag");
+ }
fields.add("timeout: $timeout ${other.timeout}");
if (enableAsserts || other.enableAsserts) {
fields.add("enable-asserts $enableAsserts ${other.enableAsserts}");
diff --git a/pkg/smith/test/configuration_test.dart b/pkg/smith/test/configuration_test.dart
index 86874b8..9c77fb3 100644
--- a/pkg/smith/test/configuration_test.dart
+++ b/pkg/smith/test/configuration_test.dart
@@ -200,6 +200,7 @@
Configuration.parse("dart2js", {
"builder-tag": "the tag",
"vm-options": ["vm stuff", "more vm stuff"],
+ "dart2js-options": ["dart2js stuff", "more dart2js stuff"],
"enable-asserts": true,
"checked": true,
"csp": true,
@@ -219,6 +220,7 @@
System.host,
builderTag: "the tag",
vmOptions: ["vm stuff", "more vm stuff"],
+ dart2jsOptions: ["dart2js stuff", "more dart2js stuff"],
enableAsserts: true,
isChecked: true,
isCsp: true,
diff --git a/tools/bots/test_matrix.json b/tools/bots/test_matrix.json
index e7b0ef4..bcf66e7 100644
--- a/tools/bots/test_matrix.json
+++ b/tools/bots/test_matrix.json
@@ -252,6 +252,11 @@
"minified": true,
"use-sdk": true
}},
+ "dart2js-production-(linux|mac|win)-d8": {
+ "options": {
+ "use-sdk": true,
+ "dart2js-options": ["-O3"]
+ }},
"dart2js-hostasserts-(linux|mac|win)-(ia32|x64)-d8": {
"options": {
"host-checked": true
@@ -1183,6 +1188,25 @@
"dart2js_extra",
"dart2js_native"
]
+ },
+ {
+ "name": "dart2js production tests",
+ "arguments": [
+ "-ndart2js-production-linux-d8",
+ "--dart2js-batch",
+ "--exclude_suite=observatory_ui"
+ ],
+ "shards": 6,
+ "fileset": "dart2js"
+ },
+ {
+ "name": "dart2js production extra tests",
+ "arguments": [
+ "-ndart2js-production-linux-d8",
+ "--dart2js-batch",
+ "dart2js_extra",
+ "dart2js_native"
+ ]
}
]
},
diff --git a/tools/testing/dart/configuration.dart b/tools/testing/dart/configuration.dart
index c882c7a..59399f3a 100644
--- a/tools/testing/dart/configuration.dart
+++ b/tools/testing/dart/configuration.dart
@@ -59,7 +59,6 @@
this.testDriverErrorPort,
this.localIP,
this.keepGeneratedFiles,
- this.dart2jsOptions,
this.sharedOptions,
String packages,
this.packageRoot,
@@ -141,7 +140,7 @@
final bool keepGeneratedFiles;
/// Extra dart2js options passed to the testing script.
- final List<String> dart2jsOptions;
+ List<String> get dart2jsOptions => configuration.dart2jsOptions;
/// Extra VM options passed to the testing script.
List<String> get vmOptions => configuration.vmOptions;
@@ -437,6 +436,7 @@
'csp': isCsp,
'system': system.name,
'vm_options': vmOptions,
+ 'dart2js_options': dart2jsOptions,
'fasta': usesFasta,
'use_sdk': useSdk,
'builder_tag': builderTag,
diff --git a/tools/testing/dart/options.dart b/tools/testing/dart/options.dart
index ee60c72..cafab24 100644
--- a/tools/testing/dart/options.dart
+++ b/tools/testing/dart/options.dart
@@ -695,6 +695,7 @@
isCsp: data["csp"] as bool,
isMinified: data["minified"] as bool,
vmOptions: vmOptions,
+ dart2jsOptions: dart2jsOptions,
builderTag: data["builder_tag"] as String,
previewDart2: true);
var configuration = new TestConfiguration(
@@ -737,7 +738,6 @@
data['test_server_cross_origin_port'] as int,
testDriverErrorPort: data["test_driver_error_port"] as int,
localIP: data["local_ip"] as String,
- dart2jsOptions: dart2jsOptions,
sharedOptions: sharedOptions,
packages: data["packages"] as String,
packageRoot: data["package_root"] as String,