Remove babel from DEPS and (dart2js) IE support from test infra.

Tested: N/A
Change-Id: Ib1804b49c40cac9be52e732090e8160444ebb48d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/417948
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
This commit is contained in:
Mayank Patke
2025-03-28 11:26:47 -07:00
committed by Commit Queue
parent 945b031f5e
commit cc0527decb
21 changed files with 20 additions and 2115 deletions
-7
View File
@@ -260,13 +260,6 @@ deps = {
Var("dart_root") + "/third_party/markupsafe": Var("dart_root") + "/third_party/markupsafe":
Var("chromium_git") + "/chromium/src/third_party/markupsafe.git" + Var("chromium_git") + "/chromium/src/third_party/markupsafe.git" +
"@" + Var("markupsafe_rev"), "@" + Var("markupsafe_rev"),
Var("dart_root") + "/third_party/babel": {
"packages": [{
"package": "dart/third_party/babel",
"version": "version:7.4.5",
}],
"dep_type": "cipd",
},
Var("dart_root") + "/third_party/zlib": Var("dart_root") + "/third_party/zlib":
Var("chromium_git") + "/chromium/src/third_party/zlib.git" + Var("chromium_git") + "/chromium/src/third_party/zlib.git" +
"@" + Var("zlib_rev"), "@" + Var("zlib_rev"),
+2 -2
View File
@@ -158,9 +158,9 @@ All tests are executed using the `test.py` script under `tools/`. You need to u
$ ./tools/build.py --mode release --arch ia32 most run_ffi_unit_tests $ ./tools/build.py --mode release --arch ia32 most run_ffi_unit_tests
``` ```
Now you can run all tests as follows (Safari, Firefox, Chrome, and IE must be installed, if you want to run the tests on them): Now you can run all tests as follows (Safari, Firefox, and Chrome must be installed, if you want to run the tests on them):
```bash ```bash
$ ./tools/test.py -mrelease --arch=ia32 --compiler=dartk,dart2js --runtime=vm,d8,chrome,firefox,[safari,ie10] $ ./tools/test.py -mrelease --arch=ia32 --compiler=dartk,dart2js --runtime=vm,d8,chrome,firefox,[safari]
``` ```
Specify the compiler used (optional -- only necessary if you are compiling to JavaScript (required for most browsers), the default is "none") and a runtime (where the code will be run). Specify the compiler used (optional -- only necessary if you are compiling to JavaScript (required for most browsers), the default is "none") and a runtime (where the code will be run).
+1 -1
View File
@@ -13,7 +13,7 @@ and runtimes we maintain and support.
We have tens of thousands of tests and a single test may be run across a We have tens of thousands of tests and a single test may be run across a
combinatorial explosion of configurations. Does the static analyzer report any combinatorial explosion of configurations. Does the static analyzer report any
errors on it? In strong mode? Does it run on the standalone VM? Can dart2js errors on it? In strong mode? Does it run on the standalone VM? Can dart2js
compile it? Does the resulting code run in Chrome? Firefox? IE? In checked mode? compile it? Does the resulting code run in Chrome? Firefox? In checked mode?
With minification on? You get the idea. With minification on? You get the idea.
Many tests are only meaningful for certain combinations of configurations. A Many tests are only meaningful for certain combinations of configurations. A
+2 -38
View File
@@ -282,7 +282,6 @@ class Configuration {
name, architecture, compiler, mode, runtime, system, name, architecture, compiler, mode, runtime, system,
nnbdMode: nnbdMode, nnbdMode: nnbdMode,
sanitizer: sanitizer, sanitizer: sanitizer,
babel: stringOption("babel"),
builderTag: stringOption("builder-tag"), builderTag: stringOption("builder-tag"),
genKernelOptions: stringListOption("gen-kernel-options"), genKernelOptions: stringListOption("gen-kernel-options"),
vmOptions: stringListOption("vm-options"), vmOptions: stringListOption("vm-options"),
@@ -329,8 +328,6 @@ class Configuration {
final Sanitizer sanitizer; final Sanitizer sanitizer;
final String babel;
final String builderTag; final String builderTag;
final List<String> genKernelOptions; final List<String> genKernelOptions;
@@ -385,7 +382,6 @@ class Configuration {
this.runtime, this.system, this.runtime, this.system,
{NnbdMode? nnbdMode, {NnbdMode? nnbdMode,
Sanitizer? sanitizer, Sanitizer? sanitizer,
String? babel,
String? builderTag, String? builderTag,
List<String>? genKernelOptions, List<String>? genKernelOptions,
List<String>? vmOptions, List<String>? vmOptions,
@@ -408,7 +404,6 @@ class Configuration {
bool? useQemu}) bool? useQemu})
: nnbdMode = nnbdMode ?? NnbdMode.strong, : nnbdMode = nnbdMode ?? NnbdMode.strong,
sanitizer = sanitizer ?? Sanitizer.none, sanitizer = sanitizer ?? Sanitizer.none,
babel = babel ?? "",
builderTag = builderTag ?? "", builderTag = builderTag ?? "",
genKernelOptions = genKernelOptions ?? <String>[], genKernelOptions = genKernelOptions ?? <String>[],
vmOptions = vmOptions ?? <String>[], vmOptions = vmOptions ?? <String>[],
@@ -448,7 +443,6 @@ class Configuration {
this.system, { this.system, {
required this.nnbdMode, required this.nnbdMode,
required this.sanitizer, required this.sanitizer,
required this.babel,
required this.builderTag, required this.builderTag,
required this.genKernelOptions, required this.genKernelOptions,
required this.vmOptions, required this.vmOptions,
@@ -486,7 +480,6 @@ class Configuration {
System.host, System.host,
nnbdMode: source.nnbdMode, nnbdMode: source.nnbdMode,
sanitizer: source.sanitizer, sanitizer: source.sanitizer,
babel: source.babel,
builderTag: source.builderTag, builderTag: source.builderTag,
genKernelOptions: source.genKernelOptions, genKernelOptions: source.genKernelOptions,
vmOptions: source.vmOptions, vmOptions: source.vmOptions,
@@ -523,7 +516,6 @@ class Configuration {
system == other.system && system == other.system &&
nnbdMode == other.nnbdMode && nnbdMode == other.nnbdMode &&
sanitizer == other.sanitizer && sanitizer == other.sanitizer &&
babel == other.babel &&
builderTag == other.builderTag && builderTag == other.builderTag &&
_listsEqual(genKernelOptions, other.genKernelOptions) && _listsEqual(genKernelOptions, other.genKernelOptions) &&
_listsEqual(vmOptions, other.vmOptions) && _listsEqual(vmOptions, other.vmOptions) &&
@@ -575,7 +567,6 @@ class Configuration {
runtime.hashCode ^ runtime.hashCode ^
system.hashCode ^ system.hashCode ^
nnbdMode.hashCode ^ nnbdMode.hashCode ^
babel.hashCode ^
builderTag.hashCode ^ builderTag.hashCode ^
genKernelOptions.join(" & ").hashCode ^ genKernelOptions.join(" & ").hashCode ^
vmOptions.join(" & ").hashCode ^ vmOptions.join(" & ").hashCode ^
@@ -619,7 +610,6 @@ class Configuration {
fields.add("$name: [${field.join(", ")}]"); fields.add("$name: [${field.join(", ")}]");
} }
if (babel.isNotEmpty) fields.add("babel: $babel");
if (builderTag.isNotEmpty) fields.add("builder-tag: $builderTag"); if (builderTag.isNotEmpty) fields.add("builder-tag: $builderTag");
stringListField("gen-kernel-options", genKernelOptions); stringListField("gen-kernel-options", genKernelOptions);
stringListField("vm-options", vmOptions); stringListField("vm-options", vmOptions);
@@ -676,7 +666,6 @@ class Configuration {
fields.add("nnbd: $nnbdMode ${other.nnbdMode}"); fields.add("nnbd: $nnbdMode ${other.nnbdMode}");
fields.add("sanitizer: $sanitizer ${other.sanitizer}"); fields.add("sanitizer: $sanitizer ${other.sanitizer}");
stringField("babel", babel, other.babel);
stringField("builder-tag", builderTag, other.builderTag); stringField("builder-tag", builderTag, other.builderTag);
stringListField( stringListField(
"gen-kernel-options", genKernelOptions, other.genKernelOptions); "gen-kernel-options", genKernelOptions, other.genKernelOptions);
@@ -865,9 +854,6 @@ class Compiler extends NamedEnum {
Runtime.firefox, Runtime.firefox,
Runtime.chrome, Runtime.chrome,
Runtime.safari, Runtime.safari,
Runtime.ie9,
Runtime.ie10,
Runtime.ie11,
Runtime.edge, Runtime.edge,
Runtime.chromeOnAndroid, Runtime.chromeOnAndroid,
]; ];
@@ -1007,9 +993,6 @@ class Runtime extends NamedEnum {
static const firefox = Runtime._('firefox'); static const firefox = Runtime._('firefox');
static const chrome = Runtime._('chrome'); static const chrome = Runtime._('chrome');
static const safari = Runtime._('safari'); static const safari = Runtime._('safari');
static const ie9 = Runtime._('ie9');
static const ie10 = Runtime._('ie10');
static const ie11 = Runtime._('ie11');
static const edge = Runtime._('edge'); static const edge = Runtime._('edge');
static const chromeOnAndroid = Runtime._('chromeOnAndroid'); static const chromeOnAndroid = Runtime._('chromeOnAndroid');
static const none = Runtime._('none'); static const none = Runtime._('none');
@@ -1026,9 +1009,6 @@ class Runtime extends NamedEnum {
firefox, firefox,
chrome, chrome,
safari, safari,
ie9,
ie10,
ie11,
edge, edge,
chromeOnAndroid, chromeOnAndroid,
none none
@@ -1043,27 +1023,14 @@ class Runtime extends NamedEnum {
const Runtime._(super.name); const Runtime._(super.name);
bool get isBrowser => const [ bool get isBrowser =>
ie9, const [edge, safari, chrome, firefox, chromeOnAndroid].contains(this);
ie10,
ie11,
edge,
safari,
chrome,
firefox,
chromeOnAndroid
].contains(this);
bool get isIE => name.startsWith("ie");
bool get isSafari => name.startsWith("safari"); bool get isSafari => name.startsWith("safari");
/// Whether this runtime is a command-line JavaScript environment. /// Whether this runtime is a command-line JavaScript environment.
bool get isJSCommandLine => const [d8, jsc, jsshell].contains(this); bool get isJSCommandLine => const [d8, jsc, jsshell].contains(this);
/// If the runtime doesn't support `Window.open`, we use iframes instead.
bool get requiresIFrame => !const [ie11, ie10].contains(this);
/// The preferred compiler to use with this runtime if no other compiler is /// The preferred compiler to use with this runtime if no other compiler is
/// specified. /// specified.
Compiler get defaultCompiler { Compiler get defaultCompiler {
@@ -1080,9 +1047,6 @@ class Runtime extends NamedEnum {
case firefox: case firefox:
case chrome: case chrome:
case safari: case safari:
case ie9:
case ie10:
case ie11:
case edge: case edge:
case chromeOnAndroid: case chromeOnAndroid:
return Compiler.dart2js; return Compiler.dart2js;
File diff suppressed because it is too large Load Diff
@@ -108,14 +108,15 @@ void testNotBoolean() {
void testNotEqual() { void testNotEqual() {
// Test the != operator. // Test the != operator.
var expression = Expression.parse(r"$compiler == dart2js && $runtime != ie9"); var expression =
Expression.parse(r"$compiler == dart2js && $runtime != safari");
Expect.equals( Expect.equals(
r"$compiler == dart2js && $runtime != ie9", expression.toString()); r"$compiler == dart2js && $runtime != safari", expression.toString());
// Test BooleanExpression.evaluate(). // Test BooleanExpression.evaluate().
var environment = TestEnvironment({ var environment = TestEnvironment({
"compiler": "none", "compiler": "none",
"runtime": "ie9", "runtime": "safari",
}); });
Expect.isFalse(expression.evaluate(environment)); Expect.isFalse(expression.evaluate(environment));
@@ -123,7 +124,7 @@ void testNotEqual() {
Expect.isFalse(expression.evaluate(environment)); Expect.isFalse(expression.evaluate(environment));
environment["compiler"] = "dart2js"; environment["compiler"] = "dart2js";
environment["runtime"] = "ie9"; environment["runtime"] = "safari";
Expect.isFalse(expression.evaluate(environment)); Expect.isFalse(expression.evaluate(environment));
environment["runtime"] = "chrome"; environment["runtime"] = "chrome";
Expect.isTrue(expression.evaluate(environment)); Expect.isTrue(expression.evaluate(environment));
@@ -1,12 +0,0 @@
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// 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.
const babelStandalonePath = arguments[0];
load(babelStandalonePath);
const inputFilePath = arguments[2];
const input = read(inputFilePath);
const options = JSON.parse(arguments[1]);
const output = Babel.transform(input, options).code;
console.log(output);
+4 -127
View File
@@ -81,11 +81,6 @@ abstract class Browser {
var service = WebDriverService.fromRuntime(Runtime.safari); var service = WebDriverService.fromRuntime(Runtime.safari);
browser = Safari(service.port); browser = Safari(service.port);
break; break;
case Runtime.ie9:
case Runtime.ie10:
case Runtime.ie11:
browser = IE(configuration.browserLocation);
break;
default: default:
throw "unreachable"; throw "unreachable";
} }
@@ -98,9 +93,6 @@ abstract class Browser {
'ff', 'ff',
'firefox', 'firefox',
'chrome', 'chrome',
'ie9',
'ie10',
'ie11'
]; ];
static bool requiresFocus(String browserName) { static bool requiresFocus(String browserName) {
@@ -425,87 +417,6 @@ class Chrome extends Browser {
} }
} }
class IE extends Browser {
IE(this._binary);
final String _binary;
@override
Future<String> get version async {
var args = [
"query",
"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer",
"/v",
"svcVersion"
];
final result = await Process.run("reg", args);
if (result.exitCode != 0) {
throw StateError("Could not get the version of internet explorer");
}
// The string we get back looks like this:
// HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer
// version REG_SZ 9.0.8112.16421
var findString = "REG_SZ";
var index = (result.stdout as String).indexOf(findString);
if (index > 0) {
return (result.stdout as String)
.substring(index + findString.length)
.trim();
}
throw StateError("Could not get the version of internet explorer");
}
// Clears the recovery cache and allows popups on localhost if the static
// resetBrowserConfiguration flag is set.
Future<bool> resetConfiguration() async {
if (!Browser.resetBrowserConfiguration) return true;
const ieKey = r"HKCU\Software\Microsoft\Internet Explorer";
// Turn off popup blocker
await _setRegistryKey("$ieKey\\New Windows", "PopupMgr",
data: "0", type: "REG_DWORD");
// Allow popups from localhost
await _setRegistryKey("$ieKey\\New Windows\\Allow", "127.0.0.1");
// Disable IE first run wizard
await _setRegistryKey("$ieKey\\Main", "DisableFirstRunCustomize",
data: "1", type: "REG_DWORD");
var localAppData = Platform.environment['LOCALAPPDATA'];
var dir = Directory("$localAppData\\Microsoft\\"
"Internet Explorer\\Recovery");
try {
dir.delete(recursive: true);
return true;
} catch (error) {
_logEvent("Deleting recovery dir failed with $error");
return false;
}
}
@override
Future<bool> start(String url) async {
_logEvent("Starting ie browser on: $url");
await resetConfiguration();
_logEvent("Got version: ${await version}");
return startBrowserProcess(_binary, [url]);
}
Future<void> _setRegistryKey(String key, String value,
{String? data, String? type}) async {
var args = <String>[
"add",
key,
"/v",
value,
"/f",
if (type != null) ...["/t", type]
];
var result = await Process.run("reg", args);
if (result.exitCode != 0) {
_logEvent("Failed to set '$key' to '$value'");
}
}
}
class AndroidChrome extends Browser { class AndroidChrome extends Browser {
static const String viewAction = 'android.intent.action.VIEW'; static const String viewAction = 'android.intent.action.VIEW';
static const String mainAction = 'android.intent.action.MAIN'; static const String mainAction = 'android.intent.action.MAIN';
@@ -711,7 +622,6 @@ class BrowserTestOutput {
class BrowserTestRunner { class BrowserTestRunner {
static const int _maxNextTestTimeouts = 10; static const int _maxNextTestTimeouts = 10;
static const Duration _nextTestTimeout = Duration(seconds: 120); static const Duration _nextTestTimeout = Duration(seconds: 120);
static const Duration _restartBrowserInterval = Duration(seconds: 60);
/// If the queue was recently empty, don't start another browser. /// If the queue was recently empty, don't start another browser.
static const Duration _minNonemptyQueueTime = Duration(seconds: 1); static const Duration _minNonemptyQueueTime = Duration(seconds: 1);
@@ -950,25 +860,6 @@ class BrowserTestRunner {
// We are currently terminating this browser, don't start a new test. // We are currently terminating this browser, don't start a new test.
if (status.timeout) return null; if (status.timeout) return null;
// Restart Internet Explorer if it has been
// running for longer than RESTART_BROWSER_INTERVAL. The tests have
// had flaky timeouts, and this may help.
if ((configuration.runtime == Runtime.ie10 ||
configuration.runtime == Runtime.ie11) &&
status.timeSinceRestart.elapsed > _restartBrowserInterval) {
var id = status.browser.id;
// Reset stopwatch so we don't trigger again before restarting.
status.timeout = true;
status.browser.close().then((_) {
// We don't want to start a new browser if we are terminating.
if (underTermination) return;
removeBrowser(id);
requestBrowser();
});
// Don't send a test to the browser we are restarting.
return null;
}
var test = testQueue.removeLast(); var test = testQueue.removeLast();
// If our queue isn't empty, try starting more browsers // If our queue isn't empty, try starting more browsers
if (testQueue.isEmpty) { if (testQueue.isEmpty) {
@@ -1306,7 +1197,6 @@ body div {
var number_div = document.getElementById('number'); var number_div = document.getElementById('number');
var executing_div = document.getElementById('currently_executing'); var executing_div = document.getElementById('currently_executing');
var error_div = document.getElementById('unhandled_error'); var error_div = document.getElementById('unhandled_error');
var use_iframe = ${configuration.runtime.requiresIFrame};
var start = new Date(); var start = new Date();
function newTaskHandler() { function newTaskHandler() {
@@ -1369,21 +1259,10 @@ body div {
number_of_tests++; number_of_tests++;
number_div.textContent = number_of_tests; number_div.textContent = number_of_tests;
executing_div.textContent = url; executing_div.textContent = url;
if (use_iframe) { if (typeof testing_window != 'undefined') {
embedded_iframe.onload = null; testing_window.close();
embedded_iframe_div.removeChild(embedded_iframe);
embedded_iframe = document.createElement('iframe');
embedded_iframe.id = "embedded_iframe";
embedded_iframe.width='800px';
embedded_iframe.height='600px';
embedded_iframe_div.appendChild(embedded_iframe);
embedded_iframe.src = url;
} else {
if (typeof testing_window != 'undefined') {
testing_window.close();
}
testing_window = window.open(url);
} }
testing_window = window.open(url);
test_started = false; test_started = false;
test_completed = false; test_completed = false;
} }
@@ -1472,9 +1351,7 @@ body div {
function messageHandler(e) { function messageHandler(e) {
var msg = e.data; var msg = e.data;
if (typeof msg != 'string') return; if (typeof msg != 'string') return;
var expectedSource = if (e.source != testing_window) {
use_iframe ? embedded_iframe.contentWindow : testing_window;
if (e.source != expectedSource) {
reportError("Message received from old test window: " + msg); reportError("Message received from old test window: " + msg);
return; return;
} }
@@ -472,17 +472,11 @@ class Dart2jsCompilerConfiguration extends CompilerConfiguration {
var inputFile = arguments.last; var inputFile = arguments.last;
var inputFilename = Uri.file(inputFile).pathSegments.last; var inputFilename = Uri.file(inputFile).pathSegments.last;
var out = "$tempDir/${inputFilename.replaceAll('.dart', '.js')}"; var out = "$tempDir/${inputFilename.replaceAll('.dart', '.js')}";
var babel = _configuration.babel;
var babelOut = out;
if (babel.isNotEmpty) {
out = out.replaceAll('.js', '.raw.js');
}
var commands = [ var commands = [
computeCompilationCommand(out, compilerArguments, environmentOverrides), computeCompilationCommand(out, compilerArguments, environmentOverrides),
if (babel.isNotEmpty) computeBabelCommand(out, babelOut, babel)
]; ];
return CommandArtifact(commands, babelOut, 'application/javascript'); return CommandArtifact(commands, out, 'application/javascript');
} }
@override @override
@@ -499,22 +493,6 @@ class Dart2jsCompilerConfiguration extends CompilerConfiguration {
return runtimeConfiguration.dart2jsPreambles(preambleDir) return runtimeConfiguration.dart2jsPreambles(preambleDir)
..add(artifact!.filename); ..add(artifact!.filename);
} }
Command computeBabelCommand(String input, String output, String options) {
var uri = Repository.uri;
var babelTransform =
uri.resolve('pkg/test_runner/lib/src/babel_transform.js').toFilePath();
var babelStandalone =
uri.resolve('third_party/babel/babel.min.js').toFilePath();
return CompilationCommand(
'babel',
output,
[],
_configuration.runtimeConfiguration.d8FileName,
[babelTransform, "--", babelStandalone, options, input],
{},
alwaysCompile: true); // TODO(athom): ensure dependency tracking works.
}
} }
/// Common configuration for dart2wasm-based tools, such as dart2wasm. /// Common configuration for dart2wasm-based tools, such as dart2wasm.
@@ -183,7 +183,6 @@ class TestConfiguration {
final String? serviceResponseSizesDirectory; final String? serviceResponseSizesDirectory;
final String outputDirectory; final String outputDirectory;
final String? suiteDirectory; final String? suiteDirectory;
String get babel => configuration.babel;
String get builderTag => configuration.builderTag; String get builderTag => configuration.builderTag;
final List<String> reproducingArguments; final List<String> reproducingArguments;
@@ -386,15 +385,6 @@ class TestConfiguration {
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
System.linux: '/usr/bin/google-chrome' System.linux: '/usr/bin/google-chrome'
}, },
Runtime.ie9: {
System.win: 'C:\\Program Files\\Internet Explorer\\iexplore.exe'
},
Runtime.ie10: {
System.win: 'C:\\Program Files\\Internet Explorer\\iexplore.exe'
},
Runtime.ie11: {
System.win: 'C:\\Program Files\\Internet Explorer\\iexplore.exe'
}
}; };
location = locations[runtime]![System.find(Platform.operatingSystem)]; location = locations[runtime]![System.find(Platform.operatingSystem)];
@@ -467,15 +457,6 @@ class TestConfiguration {
isValid = false; isValid = false;
} }
if (runtime.isIE &&
Platform.operatingSystem != 'windows' &&
!listStatusFiles &&
!listTests) {
print("Warning: cannot run Internet Explorer on non-Windows operating"
" system.");
isValid = false;
}
if (architecture == Architecture.ia32 && compiler == Compiler.dartkp) { if (architecture == Architecture.ia32 && compiler == Compiler.dartkp) {
print("Warning: IA32 does not support AOT mode."); print("Warning: IA32 does not support AOT mode.");
isValid = false; isValid = false;
-1
View File
@@ -23,7 +23,6 @@ final _variables = {
"host_asserts": _Variable.bool((c) => c.enableHostAsserts), "host_asserts": _Variable.bool((c) => c.enableHostAsserts),
"hot_reload": _Variable.bool((c) => c.hotReload), "hot_reload": _Variable.bool((c) => c.hotReload),
"hot_reload_rollback": _Variable.bool((c) => c.hotReloadRollback), "hot_reload_rollback": _Variable.bool((c) => c.hotReloadRollback),
"ie": _Variable.bool((c) => c.runtime.isIE),
"jscl": _Variable.bool((c) => c.runtime.isJSCommandLine), "jscl": _Variable.bool((c) => c.runtime.isJSCommandLine),
"minified": _Variable.bool((c) => c.isMinified), "minified": _Variable.bool((c) => c.isMinified),
"mode": _Variable((c) => c.mode.name, Mode.names), "mode": _Variable((c) => c.mode.name, Mode.names),
-9
View File
@@ -95,9 +95,6 @@ jsshell: Run JavaScript from the command line using Firefox's js-shell.
firefox: firefox:
chrome: chrome:
safari: safari:
ie9:
ie10:
ie11:
chromeOnAndroid: Run JavaScript in the specified browser. chromeOnAndroid: Run JavaScript in the specified browser.
none: No runtime, compile only.''') none: No runtime, compile only.''')
@@ -348,10 +345,6 @@ options. Used to be able to make sane updates to the status files.''',
..addMultiOption('enable-experiment', ..addMultiOption('enable-experiment',
aliases: ['experiments', 'enable_experiment'], aliases: ['experiments', 'enable_experiment'],
help: 'Experiment flags to enable.') help: 'Experiment flags to enable.')
..addOption('babel',
help: '''Transforms dart2js output with Babel. The value must be
Babel options JSON.''',
hide: true)
..addFlag('default-suites', ..addFlag('default-suites',
hide: true, hide: true,
help: 'Include the default suites in addition to the requested suites.') help: 'Include the default suites in addition to the requested suites.')
@@ -434,7 +427,6 @@ has been specified on the command line.''')
'vm-options', 'vm-options',
'dart2js-options', 'dart2js-options',
'enable-experiment', 'enable-experiment',
'babel',
'builder-tag', 'builder-tag',
'use-qemu' 'use-qemu'
}; };
@@ -808,7 +800,6 @@ has been specified on the command line.''')
dart2jsOptions: dart2jsOptions, dart2jsOptions: dart2jsOptions,
ddcOptions: ddcOptions, ddcOptions: ddcOptions,
experiments: experiments, experiments: experiments,
babel: data['babel'] as String?,
builderTag: data["builder-tag"] as String?, builderTag: data["builder-tag"] as String?,
useQemu: data["use-qemu"] as bool); useQemu: data["use-qemu"] as bool);
addConfiguration(configuration); addConfiguration(configuration);
@@ -577,12 +577,6 @@ class CommandExecutorImpl implements CommandExecutor {
adbDevicePool!.releaseDevice(device); adbDevicePool!.releaseDevice(device);
} }
}); });
} else if (command is CompilationCommand &&
command.displayName == 'babel') {
return RunningProcess(command, timeout,
configuration: globalConfiguration,
outputFile: io.File(command.outputFile))
.run();
} else if (command is ProcessCommand) { } else if (command is ProcessCommand) {
return RunningProcess(command, timeout, return RunningProcess(command, timeout,
configuration: globalConfiguration) configuration: globalConfiguration)
@@ -24,9 +24,6 @@ abstract class RuntimeConfiguration {
case Runtime.chrome: case Runtime.chrome:
case Runtime.chromeOnAndroid: case Runtime.chromeOnAndroid:
case Runtime.firefox: case Runtime.firefox:
case Runtime.ie11:
case Runtime.ie10:
case Runtime.ie9:
case Runtime.safari: case Runtime.safari:
// TODO(ahe): Replace this with one or more browser runtimes. // TODO(ahe): Replace this with one or more browser runtimes.
return DummyRuntimeConfiguration(); return DummyRuntimeConfiguration();
+1 -1
View File
@@ -40,7 +40,7 @@ final _combinations = {
'compiler': 'none' 'compiler': 'none'
}, },
{ {
'runtimes': ['chrome', 'ff', 'ie11', 'ie10'], 'runtimes': ['chrome', 'ff'],
'modes': ['release'], 'modes': ['release'],
'archs': ['ia32'], 'archs': ['ia32'],
'compiler': 'dart2js' 'compiler': 'dart2js'
@@ -106,15 +106,7 @@ Future testConfigurations(List<TestConfiguration> configurations) async {
} }
} }
if (configuration.runtime.isIE) { if (configuration.runtime.isSafari) {
// NOTE: We've experienced random timeouts of tests on ie9/ie10. The
// underlying issue has not been determined yet. Our current hypothesis
// is that windows does not handle the IE processes independently.
// If we have more than one browser and kill a browser we are seeing
// issues with starting up a new browser just after killing the hanging
// browser.
maxBrowserProcesses = 1;
} else if (configuration.runtime.isSafari) {
// Safari does not allow us to run from a fresh profile, so we can only // Safari does not allow us to run from a fresh profile, so we can only
// use one browser. Additionally, you can not start two simulators // use one browser. Additionally, you can not start two simulators
// for mobile safari simultaneously. // for mobile safari simultaneously.
+2 -4
View File
@@ -341,8 +341,6 @@ class TestingServers {
// Allow loading from http://*:$allowedPort in browsers. // Allow loading from http://*:$allowedPort in browsers.
allowedOrigin = '${origin.scheme}://${origin.host}:$allowedPort'; allowedOrigin = '${origin.scheme}://${origin.host}:$allowedPort';
} else { } else {
// IE10 appears to be bugged and is not sending the Origin header
// when making CORS requests to the same domain but different port.
allowedOrigin = '*'; allowedOrigin = '*';
} }
@@ -355,8 +353,8 @@ class TestingServers {
} }
if (useContentSecurityPolicy) { if (useContentSecurityPolicy) {
// Chrome respects the standardized Content-Security-Policy header, // Chrome respects the standardized Content-Security-Policy header,
// whereas Firefox and IE10 use X-Content-Security-Policy. Safari // whereas Firefox uses X-Content-Security-Policy. Safari still uses the
// still uses the WebKit- prefixed version. // WebKit- prefixed version.
var contentHeaderValue = [ var contentHeaderValue = [
"script-src 'self'", "script-src 'self'",
"object-src 'self'", "object-src 'self'",
@@ -11,5 +11,5 @@
# custom elements are not supported on old browsers, we don't # custom elements are not supported on old browsers, we don't
# intend for observatory to work on old browser versions, so # intend for observatory to work on old browser versions, so
# skipping. # skipping.
[ $runtime == ff || $runtime == ie10 || $runtime == ie11 || $runtime == safari ] [ $runtime == ff || $runtime == safari ]
*: SkipByDesign *: SkipByDesign
-11
View File
@@ -163,17 +163,6 @@ LibTest/html/IFrameElement/onTouchLeave_A01_t01: SkipByDesign # TouchEvent const
LibTest/html/IFrameElement/onTouchMove_A01_t01: SkipByDesign # TouchEvent constructor not exposed in FF LibTest/html/IFrameElement/onTouchMove_A01_t01: SkipByDesign # TouchEvent constructor not exposed in FF
LibTest/html/IFrameElement/onTouchStart_A01_t01: SkipByDesign # TouchEvent constructor not exposed in FF LibTest/html/IFrameElement/onTouchStart_A01_t01: SkipByDesign # TouchEvent constructor not exposed in FF
[ $compiler == dart2js && $runtime == ie11 ]
LibTest/collection/ListBase/ListBase_class_A01_t04: SkipSlow # slow babeljs transformation
LibTest/collection/ListBase/ListBase_class_A01_t05: SkipSlow # slow babeljs transformation
LibTest/collection/ListBase/ListBase_class_A01_t06: SkipSlow # slow babeljs transformation
LibTest/collection/ListMixin/ListMixin_class_A01_t04: SkipSlow # slow babeljs transformation
LibTest/collection/ListMixin/ListMixin_class_A01_t05: SkipSlow # slow babeljs transformation
LibTest/collection/ListMixin/ListMixin_class_A01_t06: SkipSlow # slow babeljs transformation
LibTest/core/List/List_class_A01_t04: SkipSlow # slow babeljs transformation
LibTest/core/List/List_class_A01_t05: SkipSlow # slow babeljs transformation
LibTest/core/List/List_class_A01_t06: SkipSlow # slow babeljs transformation
[ $compiler == dart2js && $runtime == safari ] [ $compiler == dart2js && $runtime == safari ]
LibTest/html/Element/isContentEditable_A01_t01: Skip # 98% fails in Safari, evades flake detection https://github.com/dart-lang/sdk/issues/50718 LibTest/html/Element/isContentEditable_A01_t01: Skip # 98% fails in Safari, evades flake detection https://github.com/dart-lang/sdk/issues/50718
LibTest/html/Element/isContentEditable_A02_t01: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718 LibTest/html/Element/isContentEditable_A02_t01: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
-4
View File
@@ -36,10 +36,6 @@ isolate/package_config_getter_test: SkipByDesign # AOT mode doesn't preserve pac
convert/streamed_conversion_utf8_decode_test: Slow, Pass # Issue 12029 convert/streamed_conversion_utf8_decode_test: Slow, Pass # Issue 12029
mirrors/mirrors_reader_test: Slow, Pass # Issue 16589 mirrors/mirrors_reader_test: Slow, Pass # Issue 16589
[ $runtime == ie11 ]
html/request_animation_frame_test: Skip # Times out. Issue 22167
html/transition_event_test: Skip # Times out. Issue 22167
[ $runtime == safari ] [ $runtime == safari ]
html/indexeddb_1_test/functional: Skip # Times out. Issue 21433 html/indexeddb_1_test/functional: Skip # Times out. Issue 21433
html/indexeddb_3_test: Skip # Times out 1 out of 10. html/indexeddb_3_test: Skip # Times out 1 out of 10.
-6
View File
@@ -346,12 +346,6 @@
"use-sdk": true "use-sdk": true
} }
}, },
"dart2js-win-ie11": {
"options": {
"babel": "{\"presets\":[\"es2015\"]}",
"use-sdk": true
}
},
"dart2js-win-edge": { "dart2js-win-edge": {
"options": { "options": {
"use-sdk": true "use-sdk": true